AS3: уровень звуковой активности NetStream - PullRequest
8 голосов
/ 18 сентября 2009

Я дергаю себя за волосы (еще раз), пытаясь найти способ прочитать уровень активности звука NetStream, аналогично тому, как вы можете сделать это с микрофоном. Я не хотел бы, чтобы каждый клиент отправлял свой уровень активности через SharedObjects или тому подобное, что, похоже, является единственным способом заставить его работать.

Большое спасибо заранее!

-Dave

Ответы [ 4 ]

8 голосов
/ 23 сентября 2009

В AS3 объект Netstream имеет свойство .info. Это содержит объект NetStreamInfo. NetstreamInfo предоставит вам все виды метрик. Среди них есть свойство 'audioBytesPerSecond', которое даст вам представление об активности звука в определенный момент времени. Запрос NetStreamInfo для входящего потока предоставит вам данные от клиента. Запрос NetStreamInfo для исходящего потока предоставит вам данные с вашей собственной активности с камеры и микрофона. Более подробную информацию об объекте NetStreamInfo можно найти здесь: http://help.adobe.com/en_US/AS3LCR/Flash_10.0/flash/net/NetStreamInfo.html

1 голос
/ 12 ноября 2014

NetStreamInfo.audioBytesPerSecond ненадежен. В среднем за секунду требуется еще одна секунда, прежде чем вы сможете обнаружить отсутствие звука.

Вместо этого вы должны использовать NetStreamInfo.audioByteCount. Начиная с документации Adobe:

Определяет общее количество аудиобайтов, поступивших в очередь, независимо от того, сколько было воспроизведено или очищено. Вы можете использовать это значение для расчета скорости входящих аудиоданных, используя выбранную вами метрику, создав таймер и рассчитав разницу в значениях при последующих вызовах таймера.

1 голос
/ 23 сентября 2009

Это, наверное, единственный способ сделать это. NetStream - довольно общий объект по своему дизайну. Лучший сайт, чтобы задать такой вопрос, может быть на FlashComGuru.com , где тусуются многие ребята из NetStream / FMS.

0 голосов
/ 28 сентября 2009

Я видел примеры Flex, в которых отображается строка эквалайзера.

код использует два объекта

SoundTransform и flash.media.SoundChannel

он функционирует путем отправки пользовательского события со свойством, которое является объектом SoundChannel, содержащим эквалайзер воспроизводимого аудиопотока.

не уверен точно, как работает самка, потому что он скомпонован во флекс, или как добраться из NetStream в SoundChannel на основе звука.

Пример приведен в главе 15 «Создание собственных компонентов» книги «Компонентные решения Flex 3» Джек Херрингтон. опубликовано друзьями Эд (розовые книги позвоночника).

надеюсь, что это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...