Adobe flash: воспроизведение Speex Audio из файла - PullRequest
2 голосов
/ 05 августа 2010

Я очень старался найти пример, показывающий, как проигрывать закодированный Speex звук во флэш-памяти.Я попробовал следующий код -

var connect_nc:NetConnection = new NetConnection();
connect_nc.connect(null);
var stream_ns:NetStream = new NetStream(connect_nc);
stream_ns.play("RE-Sample.m4a");

доступен по адресу -

http://www.adobe.com/devnet/flashplayer/articles/hd_video_flash_player _03.html

Я протестировал этот код с видео .flv и AACзакодированные аудио файлы, и это работает просто отлично.Но когда я пытаюсь выполнить stream_ns.play ("sample.spx"), я получаю исключение для потока, который не найден.

Использую ли я неправильный контейнер (.spx) для звука speex.Поддерживается ли воспроизведение звука speex из файла?Пожалуйста, помогите!

(Было бы здорово, если бы вы могли привести пример.)

Ответы [ 4 ]

2 голосов
/ 09 октября 2010

ArtBIT, похоже, верен и из моих тестов. SPX воспроизводится только как аудиокодек в контейнере FLV. У вас есть несколько вариантов:

  1. оберните ваши файлы SPX заранее в контейнер FLV, перекодировав их.
  2. сделать «живой» транскод с использованием FMS или Red / Xuggle (http://www.pubbs.net/200906/osflash/18579-red5-streaming-speex-audio.html)
  3. загрузить SPX в качестве байтового массива, а затем обернуть его в FLV, используя такую ​​библиотеку: http://www.zeropointnine.com/blog/simpleflvwriteras-as3-class-to-create-flvs/

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

1 голос
/ 12 октября 2010

Это звучит как работа для Алхимии.С помощью Alchemy вы можете конвертировать Speex декодер из C в AS3.Вот ссылка на Adobe Labs, где есть пример преобразования декодера OggVorbis из C в AS3: http://labs.adobe.com/wiki/index.php/Alchemy:Libraries

1 голос
/ 12 октября 2010

Вам нужно будет поместить его в контейнер flv, ни один из серверов флэш-памяти не разрешит его в любой другой форме (если только это не прямая трансляция).Вы можете конвертировать ваши файлы с более новыми версиями ffmpeg следующим образом: ffmpeg -i RE-Sample.m4a -y -vn -acodec libspeex -ac 1 -ar 16000 -f flv RE-Sample.flv

0 голосов
/ 07 октября 2010

Согласно http://osflash.org/flv#codecs1 flv является единственным контейнером, поддерживающим кодек speex.

Попробуй с flv?

...