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?