Flex: computeSpectrum с потоковым мультимедиа? - PullRequest
1 голос
/ 19 января 2010

У меня есть приложение Flex3, которое я написал, и я передаю аудио через RTMP с сервера Red5. Я хотел бы иметь возможность использовать SoundMixer.computeSpectrum (), но данные спектра - все нули. В одном месте Adobe пишет, что SoundMixer.computeSpectrum () не работает с данными RTMP:

«Для носителей, загруженных из источников RTMP, нельзя использовать методы BitmapData.draw () и SoundMixer.computeSpectrum () для извлечения графических и звуковых данных во время выполнения». http://livedocs.adobe.com/flash/9.0/main/wwhelp/wwhimpl/common/html/wwhelp.htm?context=LiveDocs_Parts&file=00000353.html

Достаточно ясно. Кроме того, есть фактическая документация для computeSpectrum ():

"Кроме того, этот метод нельзя использовать для извлечения данных из потоков RTMP, даже если он вызывается содержимым, находящимся в том же домене, что и сервер RTMP. [...] Этот метод поддерживается через RTMP во Flash Player 9.0.115.0 и более поздних версий, а также в Adobe AIR. "

Мммм. Это кажется мне противоречивым.

Любой совет, так или иначе?

Ответы [ 4 ]

1 голос
/ 08 сентября 2010

Вот общая запись блога на эту тему: http://fefranca.com/blog/?p=6 И вот предлагаемое исправление для Red5: http://osflash.org/pipermail/red5_osflash.org/2009-November/038844.html

<bean id="rtmpSampleAccess" class="org.red5.server.stream.RtmpSampleAccess">
    <property name="audioAllowed" value="true"/>
    <property name="videoAllowed" value="true"/>
</bean>
0 голосов
/ 23 февраля 2010

Цитирование Принимает собственный публичный документ «Программирование Adobe ActionScript 3.0 для Flash» , стр. 700 (глава 32, заголовок «Загрузка контента», подзаголовок «Контент, доставляемый с помощью серверов RTMP»:

Для носителей, загруженных из источников RTMP, вы не можете использовать BitmapData.draw () и SoundMixer.computeSpectrum () методы для извлечения графики и звуковых данных во время выполнения.

Старый добрый совет RTFM (Read The Friendly Manual) остается в силе.

0 голосов
/ 13 апреля 2010

Существует также свойство client.allowAudioSampleAccess на стороне сервера (сценарии Flash Media Server), которое позволяет клиентам, насколько я понял, делать именно то, что вы хотите - читать данные аудиосэмпла с помощью 'computeSpectrum' способ.

0 голосов
/ 16 февраля 2010

теги computeSpectrum и ID3 не работают с данными из другого домена, кроме того, где находится приложение flex.

...