【问题标题】:Playing buffer in ObjectAL在 ObjectAL 中播放缓冲区
【发布时间】:2015-01-06 23:00:24
【问题描述】:

我是 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];
}

【问题讨论】:

    标签: ios openal objectal


    【解决方案1】:

    调用pitchTo或类似的函数实际上是让缓冲区不断播放,fx:

    [source pitchTo:1 duration:1 target:nil selector:nil];
    

    这不是一个完美的解释,但至少它解决了问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-10-31
      • 2013-11-22
      • 1970-01-01
      • 1970-01-01
      • 2013-01-05
      • 1970-01-01
      • 2017-12-15
      • 1970-01-01
      相关资源
      最近更新 更多