带有 SoundManager2 的 Amazon Cloudfront RTMP 字符串

Posted

技术标签:

【中文标题】带有 SoundManager2 的 Amazon Cloudfront RTMP 字符串【英文标题】:Amazon Cloudfront RTMP Strings with SoundManager2 【发布时间】:2012-05-31 12:14:03 【问题描述】:

我正在开发一个使用 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

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

【问题讨论】:

我发现this diagnostics site 在调试我的 CloudFront -> Soundmanager 设置时非常有用。 【参考方案1】:

我们前段时间遇到过这个问题,最终为每种格式提供了硬编码的 url。我们正在使用 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

【讨论】:

哇,这真是令人沮丧。确实应该有某种标准化。我真的很感激这个答案。我切换到 jwplayer,同时解决了这个问题。 另外,重要提示:要流式传输 RTMP,您需要在 SoundManager2 中启用 Flash 9(在设置时传递 flashVersion:9),它不适用于默认的 Flash 8。

以上是关于带有 SoundManager2 的 Amazon Cloudfront RTMP 字符串的主要内容,如果未能解决你的问题,请参考以下文章

SoundManager2 - 使用 RTMP 不显示持续时间

SoundManager2 onid3() 未触发

带SoundManager2的简单JavaScript音频播放器

自动播放音频播放列表 SoundManager2 bar-ui

如何在 Web Audio API 中将 SoundManager2 定义为媒体元素源

xml 带有类别路径的Amazon Feed(使用规范)