2009-07-13 140 views
0

我试图通过Flash Player 10的新实时音频功能来播放一些示例数据。我开始使用在livedocs上的this页底部给出的示例,这似乎工作正常,并播放清澈的音调。Flash Player 10实时音频播放

我假设示例中的两个writeFloat分别写入左声道和右声道,并且写入的数据是32位(由于浮点数)。

但是,我似乎无法将我的旧8位音频数据转换为该界面所理解的格式。当我播放我的样本数据时,我可以隐约听到我期待的声音,但它大量失真。我的样本数据由原始8位样本组成,范围从0到255,其中127是无声的。

我一直在尝试不同的转换公式,但我似乎错过了有关此转换的一些重要信息。

任何帮助非常感谢。

UPDATE:

正确公式结果是:

f = (sample.data.readByte() - 127)/255 

回答

2

尝试转化变种newSample:总数=(号码(oldSample)-127.0)/127.0;

1

确保您正在读取8位数据。如果您使用的是ByteArray类,则使用readUnsignedByte(而不是readByte)来获取0-255之间的值。然后使用MontyGomery建议的公式。