我是ObjectAL的新手。我用它来弹奏改变音高的mp3。
我不知道如何在ObjectAL中“正确地”使用加载的缓冲区。当我调用[source play:buffer]时,声音只会出现一小部分秒。为了不断地“播放”一个缓冲区,我可以将它嵌入无限循环中,然后正确地播放缓冲区。我想我错过了一些基本点,你能为我指出正确的方向吗?
我的代码:
[OALSimpleAudio sharedInstance].reservedSources = 0;
ALSource *source = [ALSource source];
ALBuffer *buffer = [[OpenALManager sharedInstance] bufferFromFile:@"video.mp3" reduceToMono:YES];
source.pitch = 1;
for (;;) { // infinite loop because otherwise only a millisecond of buffer is played
[source play:buffer];
}发布于 2015-01-07 16:32:54
调用pitchTo或类似的函数实际上会使缓冲区不断播放,fx:
[source pitchTo:1 duration:1 target:nil selector:nil];这并不是一个完美的解释,但至少它解决了问题。
https://stackoverflow.com/questions/27808736
复制相似问题