我试图通过Flash 10的新实时音频功能来回放一些示例数据,我从livedocs上的这页面底部的例子开始,它似乎工作得很好,并且播放的音调非常清晰。
我假设示例中的两个writeFloat
分别写入左右音频通道,并且正在写入的数据为32位(因为浮点数)。
然而。我似乎有困难,把我的旧8位音频数据转换为一种格式,这是由这个接口。当我播放我的样本数据时,我可以隐约听到我所期待的声音,但它是严重失真的。我的样本数据由原始的8位样本组成,其范围为0.255,其中127是静默。
我一直在尝试不同的转换公式,但我似乎遗漏了一些有关此转换的重要信息。
任何帮助都非常感谢。
更新:
正确的公式是:
f = (sample.data.readByte() - 127) / 255
发布于 2009-07-14 13:20:45
尝试转换var newSample:Number = (Number(oldSample)-127.0)/127.0;
发布于 2009-07-14 13:26:13
确保您正在正确地读取8位数据.如果您使用的是ByteArray类,那么使用readUnsignedByte (而不是readByte)来获得0-255之间的值。然后使用MontyGomery建议的公式。
https://stackoverflow.com/questions/1122536
复制相似问题