PCM原始數據,我一直在尋找了很多閃光的玩RAW PCM音頻數據的能力,因爲我有RAW PCM音頻作爲ByteArray的,我只是想,如果閃光燈可以真正發揮它,一些文章說是的,有些沒有,請注意,RAW PCM音頻來自現場套接字流玩實況流套接字的使用Flash
截至目前我所試過的是做一個空的聲音對象,然後調用它的播放方法然後處理它的SampleDataEvent.SAMPLE_DATA事件,並從那裏經過的字節數,一些代碼片段如下:因此,通過這樣做,我能聽到靜音
sound = new Sound();
sound.addEventListener(SampleDataEvent.SAMPLE_DATA, sampleDataHandler);
....
pa.readBytes(soundBA, soundBA.length);
if (soundBA.bytesAvailable >= (8192 * 4))
{
sound.play();
}
....
private function sampleDataHandler(event:SampleDataEvent):void {
var i:int;
for (i = 0; i < 8192 && soundBA.bytesAvailable > 0; i++)
{
var sample:Number = soundBA.readFloat();
event.data.writeFloat(sample);
event.data.writeFloat(sample);
}
}
(幾乎所有的噪音),因爲你可以看到我有這個檢查soundBA.bytesAvailable >= (8192 * 4)
,所以只有當我有足夠的數據時纔會觸發播放方法。
所以我的問題是,現在,這聽起來是不是(我聽到的噪音),意味着Flash是能夠播放PCM音頻?或者它只是意味着它無法播放,所以只能聽到噪音?
=====編輯======
我才發現,原來我處理音頻存在每個樣本16位,所以我做soundBA.bytesAvailable >= (8192 * 2 * channels)
調整一下代碼,也是我確信到的範圍內的值-1到+1傳遞給我的電話event.data.writeFloat(sample)
但仍然聲音依然沙啞
有什麼辦法來設置閃光燈聲音對象的採樣率(赫茲)?或者它總是認爲你正在使用44100Hz?