1

我有一个我编写的 Flex3 应用程序,我正在通过 RTMP 从 Red5 服务器流式传输音频。我希望能够使用 SoundMixer.computeSpectrum(),但频谱数据全为零。Adobe 在一个位置写道,SoundMixer.computeSpectrum() 不适用于 RTMP 数据:

“对于从 RTMP 源加载的媒体,您不能使用 BitmapData.draw() 和 SoundMixer.computeSpectrum() 方法来提取运行时图形和声音数据。” http://livedocs.adobe.com/flash/9.0/main/wwhelp/wwhimpl/common/html/wwhelp.htm?context=LiveDocs_Parts&file=00000353.html

够清楚。除了 computeSpectrum() 的实际文档:

“此外,此方法不能用于从 RTMP 流中提取数据,即使它被与 RTMP 服务器位于同一域中的内容调用。[...] Flash Player 9.0 中的 RTMP 支持此方法。 115.0 及更高版本以及 Adob​​e AIR 中。”

嗯。这对我来说似乎很矛盾。

有什么建议吗?

4

4 回答 4

1

这是关于该主题的整体博客文章:http: //fefranca.com/blog/?p= 6 这里是 Red5 的建议修复:http: //osflash.org/pipermail/red5_osflash.org/2009-November /038844.html

<bean id="rtmpSampleAccess" class="org.red5.server.stream.RtmpSampleAccess">
    <property name="audioAllowed" value="true"/>
    <property name="videoAllowed" value="true"/>
</豆>
于 2010-09-07T22:40:39.603 回答
0

服务器端(Flash Media Server 脚本)上还有“client.allowAudioSampleAccess”属性,据我所知,它允许客户端完全按照您的意愿执行 - 通过“computeSpectrum”方法读取音频样本数据。

于 2010-04-13T10:13:56.243 回答
-1

computeSpectrum 和 ID3 标记不适用于 flex 应用程序所在域以外的其他域的数据。

于 2010-02-16T12:44:25.367 回答
-3

引用 Adob​​e 自己的公共文档“Programming Adob​​e ActionScript 3.0 for Flash”,第 700 页(第 32 章,标题“加载内容”,子标题“使用 RTMP 服务器交付的内容”:

对于从 RTMP 源加载的媒体,您不能使用 BitmapData.draw() 和 SoundMixer.computeSpectrum() 方法来提取运行时图形和声音数据。

古老的 RTFM(阅读友好手册)的建议仍然适用。

于 2010-02-23T17:13:48.850 回答