Я записываю с веб-камеры на AMS в проекте AS3, и чтобы получить уровень громкости с микрофона, мне нужно подключить микрофон к NetStream. Позже, когда пользователь инициирует запись, значение NetStream.time отсчитывается с момента подключения камеры, а не с момента вызова NetStream.publish. Если они остановят запись и сделают запись снова, NetStream.time будет начинаться с 0. Пока что единственный способ обойти это, кажется, это вызвать публикацию, а затем закрыть NetStream, как только будет подключен микрофон. В документации для AS2 NetStream упоминается этот факт и предлагается вызвать NetStream.publish (false), который не работает в AS3, как и не просто вызов публикации без аргументов.
ns = new NetStream(nc);
ns.attachCamera(cam);
ns.attachAudio(mic);
Тогда позже
ns.publish(filename,"record");
trace(ns.time);
- время, прошедшее между подключением камеры и первым вызовом публикации.
Единственное решение, которое у меня есть, это
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 теперь равно нулю. Я что-то упускаю, есть ли лучшее решение?
NetStream
и сразу же начинал запись. Есть ли что-то в вашем варианте использования, что препятствует этому? Что-то насчет получения уровня громкости? (Я не понимаю эту часть). Лучше всего не создаватьNetStream
, пока вы не будете готовы начать запись. Другая (не очень хорошая) идея - использовать свой собственныйTimer
. - person Sunil D.   schedule 13.02.2013