我在一个AS3项目中从网络摄像头录制到AMS,为了从麦克风获得音量水平,我必须将麦克风连接到NetStream。稍后,当用户开始录制时,NetStream.time值从连接摄像头时开始计算,而不是从调用NetStream.publish时开始计算。如果他们停止录制并再次录制,现在NetStream.time从0开始。到目前为止,解决这个问题的唯一方法似乎是调用publish,然后在麦克风连接后立即在NetStream上关闭。AS2 NetStream的文档提到了这一事实,并建议调用NetStream.publish(false),这在AS3中不起作用,也不能只调用不带参数的publish。
ns = new NetStream(nc);
ns.attachCamera(cam);
ns.attachAudio(mic);然后,稍后
ns.publish(filename,"record");
trace(ns.time);是附加相机和第一次调用publish之间所经过的时间。
到目前为止,我唯一的解决方案是
ns = new NetStream(nc);
ns.attachCamera(cam);
ns.attachAudio(mic);
ns.publish(filename,"record");
ns.close();用户开始录制的时间
ns.publish(filename,"record");
trace(ns.time);ns.time现在是零。我是不是漏掉了什么,有没有更好的解决方案?
发布于 2013-03-06 17:39:36
您可以使用mic.setLoopBack(true),它会将麦克风活动路由到扬声器。现在,您将能够看到activityLevel。但是你可能想要在麦克风上设置一个音量为0的soundTransform,这样麦克风就可以有效地静音了。
基本上。
Mic.setLoopBack(真);
transform.volume变换:SoundTransform= new SoundTransfrom();SoundTransform= 0;
mic.soundTransform =变换;
停止显示活动级别后,让shure删除转换。
https://stackoverflow.com/questions/14853282
复制相似问题