您可以多次将相同的样本写入输出缓冲区.
function downOctave(bytes:ByteArray):ByteArray
{
var returnBytes:ByteArray = new ByteArray();
bytes.position = 0;
while(bytes.bytesAvailable > 0)
{
returnBytes.writeFloat(bytes.readFloat());
returnBytes.writeFloat(bytes.readFloat());
bytes.position -= 8;
returnBytes.writeFloat(bytes.readFloat());
returnBytes.writeFloat(bytes.readFloat());
}
return returnBytes;
}
Run Code Online (Sandbox Code Playgroud)
这种音高变换非常简单快速,适合在闪光灯中实时使用,但它确实改变了声音播放的速度.对于不改变持续时间的音高变换,您需要使用基于傅立叶变换的方法.喜欢这个人在这里做过.
归档时间: |
|
查看次数: |
2389 次 |
最近记录: |