我将头发拉出(再次),试图找到一种方法来读取NetStream的音频活动级别,类似于使用麦克风的方式。我不想让每个客户端通过SharedObjects等发送它的activitylevel,这似乎是实际让它工作的唯一方法。
提前非常感谢!
-Dave
答案 0 :(得分:8)
在AS3中,Netstream对象有一个名为.info的属性。这包含对象NetStreamInfo。 NetstreamInfo将为您提供各种指标。其中包括属性'audioBytesPerSecond',它可以指示某个时间点的音频活动。为传入流请求NetStreamInfo将为您提供来自客户端的数据。为传出流请求NetStreamInfo将为您提供来自您自己的cam和mic活动的数据。有关NetStreamInfo对象的更多详细信息,请访问:http://help.adobe.com/en_US/AS3LCR/Flash_10.0/flash/net/NetStreamInfo.html
答案 1 :(得分:1)
这可能是唯一的方法。 NetStream是一个非常通用的设计对象。提问这样的问题的最佳网站可能是FlashComGuru.com,很多NetStream / FMS人都会在这里闲逛。
答案 2 :(得分:1)
NetStreamInfo.audioBytesPerSecond不可靠。 作为每秒平均值,在你发现声音不足之前需要多一秒钟。
您应该使用NetStreamInfo.audioByteCount。从Adobe文档开始:
指定已到达队列的音频字节总数,无论已播放或刷新了多少。您可以使用此值来计算传入的音频数据速率,使用您选择的指标,创建计时器并计算连续计时器调用中的值的差异。
答案 3 :(得分:0)
我见过显示eq栏的Flex示例。
代码使用两个对象
SoundTransform和flash.media.SoundChannel
它通过调度具有属性的自定义事件来起作用,该属性是包含播放音频流的EQ的SoundChannel对象。
不确定母鹿如何工作导致它在flex中捆绑,或者如何从NetStream到基于音频的SoundChannel。
示例在jack herrington的“Flex 3组件解决方案”一书的第15章“构建您自己的组件”中。由ed(粉红色脊椎书籍)的朋友出版。
希望有所帮助。