带有SoundManager2的Amazon Cloudfront RTMP字符串

时间:2012-05-31 12:14:04

标签: rtmp amazon-cloudfront soundmanager2

我正在使用SoundManager2的Web应用程序。在将我的头撞到墙上并且没有让我的音乐流式传输之后,我终于在创建新的SoundManager声音时切换了我的一些URL。

这是我以前使用的,虽然它会连接,但流不会播放。

soundManager.createSound({
    id: 'songId_1',
    serverURL: 'rtmp://s3s5uvbmfjq6k1.cloudfront.net:1935/cfx/st', 
    url: 'hihi.m4a',
    onconnect: function(connected){
        alert(connected);
    }
});

然而,一旦我将其更改为此,它突然能够流式传输。

soundManager.createSound({
     id:'test3',
     serverURL:'rtmp://s3s5uvbmfjq6k1.cloudfront.net:1935/cfx/st',
     url:'mp4:hihi.m4a'
});

我不明白为什么第一个不起作用,第二个不起作用。我没有问题,serverURL是硬编码的,但url是动态的,可以是任意数量的音频格式,因此必须将其转换为有效的值才会对我有意义,除非有API这样做(我没有在Cloudfront中看到一个)。有没有办法转换

song location/song name.ext

进入流媒体的正确网址还是我需要使用其他播放器?

1 个答案:

答案 0 :(得分:6)

前一段时间我们遇到了这个问题,最终为每种格式提供了硬编码的网址。我们正在使用Flowplayer另一个Flash播放器,同时处理CloudFront和EdgeCast两个流媒体提供商,你会发现即使它们支持某些视频类型的格式也有细微差别。

您可以参考我之前询问的问题Why RTMP streaming protocal's url path different from each other?

我还没有找到任何转换它的工具,因为这依赖于流媒体提供商而且现阶段没有标准。

当我们处理mp4,flv,mp3时,构建的url是:(注意前缀和扩展名)

mp4:test.mp4
flv:test
mp3:test