我正在使用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
进入流媒体的正确网址还是我需要使用其他播放器?
答案 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