2010-08-05 100 views
2

我非常努力地找到一個展示如何在Flash中播放speex編碼音頻的例子。我嘗試下面的代碼 -Adob​​e Flash:從文件中播放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"); 

avaible在 -

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

我測試了FLV的視頻和AAC編碼的音頻文件上面的代碼,它工作得很好。但是當我嘗試stream_ns.play(「sample.spx」)時,我得到一個未找到的流異常。

我使用錯誤的容器(.spx)作爲speex音頻。從支持的文件播放speex音頻嗎?請幫忙!

(這將是巨大的,如果你能提供一個例子。)

回答

2

ArtBIT似乎從我的測試中也是正確的。 SPX只能作爲FLV容器中的音頻編解碼器播放。您有幾個選項:

  1. 通過重新編碼將您的SPX文件提前包裝到FLV容器中。
  2. 使用FMS或Red/Xuggle(「http://www.pubbs.net/200906/osflash/18579-red5-streaming-speex-audio.html)」做一個「實時」轉碼代碼
  3. 將SPX加載爲bytearray,然後用FLV使用這樣的庫包裝它:http://www.zeropointnine.com/blog/simpleflvwriteras-as3-class-to-create-flvs/

希望這有助於。

1

您必須將其放入flv容器中,任何閃存介質服務器都不允許以任何其他形式(除非其實時廣播)。你可以用ffmpeg的較新版本的文件轉換,像這樣:
ffmpeg -i RE-Sample.m4a -y -vn -acodec libspeex -ac 1 -ar 16000 -f flv RE-Sample.flv