2012-05-31 36 views
3

我正在使用SoundManager2的Web应用程序。在将我的头靠在墙上并且没有让我的音乐流式传输之后,我最终在创建新的SoundManager声音时切换了一些URL。使用SoundManager2的Amazon Cloudfront RTMP字符串

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

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 

到它的流媒体正确的URL或者我需要使用不同的球员?

+1

我发现[此诊断网站(HTTP://d1k5ny0m6d4zlj.cloudfront。 net/diag/CFStreamingDiag.html)在调试我的CloudFront - > Soundmanager设置时非常有用。 –

回答

6

前段时间我们遇到了这个麻烦,最后每个格式都有硬编码的url。我们正在使用Flowplayer的另一个Flash播放器,并且同时处理CloudFront和EdgeCast两个流媒体提供商,您会发现即使它们支持某些视频类型的格式略有不同。

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

我还没有找到任何工具来转换它,因为这是依赖于流媒体提供商,在这个阶段没有标准。

当我们处理MP4,FLV,MP3,构建网址是:(注意前缀和扩展)

mp4:test.mp4 
flv:test 
mp3:test 
+1

哇,这真的很沮丧。真的应该有某种标准化。但我真的很欣赏答案。我转而使用jwplayer,同时摆脱了这个问题。 – jstoup111

+0

这只是伤心.. – therealszaka

+0

此外,重要:要流RTMP你需要在SoundManager2中启用Flash 9(在安装时传递flashVersion:9),它将无法使用默认的Flash 8。 – therealszaka