AVAudioPlayer在没有用户输入的情况下在音频文件上设置预定义的停止点

时间:2014-06-01 05:13:30

标签: ios objective-c avaudioplayer

我一直在努力设置启动和停止音频文件的特定点。我下载了Apple的示例代码avTouchController。到目前为止,我已成功改变currentTime以开始播放。我已经尝试了几种方法来创建一个stopPlayer方法。我创造了它,没有任何问题。但是,到目前为止,玩家并没有停止。 有线索吗? 这是我实施的方法

(void)stopPlaybackForPlayer:(AVAudioPlayer *)p

{ if (p.playing)

    if (p.currentTime == 6 )
    {
        [p stop];
        [self updateViewForPlayerState:p];
    }

}

1 个答案:

答案 0 :(得分:0)

你怎么称呼这种方法?你有没有断点来看看发生了什么?

据我所知,使用AVAudioPlayer执行此操作的唯一方法是设置NSTimer,它会在触发时为您调用该方法。对currentTime进行相等性检查可能不是一个好主意,因为时间可能与您的预期完全不同,可能会略小或更大。如果你已经设置了一个大约你希望它停止的时间的计时器,让方法执行并无条件地停止播放器应该没问题。

您是否考虑过使用AVPlayer?只需使用addPeriodicTimeObserverForInterval:queue:usingBlock:方法即可轻松完成此任务,您可以更轻松地实现此目的。