【问题标题】:Flash: netStream.info.audioBytesPerSecond alternative? Or how to detect if audio is present?Flash:netStream.info.audioBytesPerSecond 替代方案?或者如何检测音频是否存在?
【发布时间】:2010-08-12 17:19:13
【问题描述】:

我们有一个 Flash 应用程序向我们的客户流式传输实时视频,它可能可用也可能不可用。当音频可用时,我们将显示用于静音或更改音量的控件。当音频不可用时,我们隐藏这些控件。这些必然是不同的流,但可能是广播公司在某个时候禁用了他们的麦克风的同一个流。所以客户端可能已经检测到音频最初显示了控件,但是一旦广播公司禁用了他们的麦克风,接收端的客户端就会识别出没有更多的音频正在传输并隐藏控件。

我们在 Flex 4 中执行此操作,目标是 flash 10,通过使用接收客户端上的 netSream.info.audioBytesPerSecond 属性来查看是否正在发送任何音频。但是,我们已获悉,我们需要针对该属性不可用的闪存 9。

那么,简而言之,Flex 3.5 中有没有一种方法可以针对 Flash 9 来确定实时流是否有可用的音频?请注意,我们也尝试使用 metaData 来进行音频的初始指示,但我们需要能够定期检查计时器,因为广播公司可能会关闭他们的麦克风,从而禁用音频中间流。

【问题讨论】:

    标签: apache-flex flash actionscript-3


    【解决方案1】:

    如何使用 SoundMixer.computeSpectrum() 并通过 enterFrame 事件检查与之关联的 ByteArray 的值?一旦 ByteArray 填充了非零值,就会检测到音频

    【讨论】:

    • 感谢您的建议,帕蒂克。总的来说,我们是 AS3 和闪存编程的新手,所以我们研究了最明显的解决方案来解决想要的问题。也就是说,只需从广播方使用自定义方法调用 netStream.send 来告诉客户端我们正在发送或不发送音频,以便他们可以启用或禁用他们的音频控件。我们只是试图“检测音频”,因为我们没有意识到您可以发送这样的自定义命令(同样,我们在这方面真的很陌生)。既然这样就足够了,我们真的不需要再实际监听音频字节了。
    猜你喜欢
    • 2013-07-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多