在iOS上播放音频文件并在不同时间暂停

时间:2011-09-30 01:28:17

标签: ios avfoundation avaudioplayer avplayer

假设我有一个音频文件和一组有关该音频文件特定片段的时间信息,即startTime和endTime。我想要做的是按顺序播放音频文件,从头开始逐段移动到文件中。

因此,例如,假设我有以下数据:

段1 - startTime:1.0s,endTime:3.4s 段2 - startTime:3.4s,endTime:5.0s 段3 - startTime:7.8s,endTime:9.5s ...

我想逐段播放音频文件。它会在文件中启动1.0秒,播放到3.4秒,然后暂停并等待用户按下按钮。一旦用户按下按钮,它将从3.4s到5.0s,然后从7.8s到9.5s等播放......

用户还可以“擦除”音频(但不能在片段之间的间隙内),所以尽管我按顺序播放,但是返回前一个片段的可能性,在这种情况下,进程将重复(即,如果用户擦洗到前一个或后一个段,它将在到达该段的末尾时暂停。)

实现这一目标的最佳方法是什么?似乎我可以使用AVAudioPlayer,但除了重复轮询currentTime之外,我没有看到一种方法在endTime中完全暂停它。 AVPlayer和AVPlayerItem看起来像另一种可能性,但如果我理解文档,一次只有一个玩家项目...所以我想我需要处理替换AVPlayerItems以使擦洗功能起作用。

有关于如何最好地实现这一目标的任何建议吗?

1 个答案:

答案 0 :(得分:0)

离开我的头顶,要么将文件分解成单独的片段并在所需的时间播放,要么使用AVAudioPlayer的功能[(音频播放器的名称)暂停]暂停它们;然后当按钮的内部触摸用[(我们的音频播放器名称)播放]时恢复播放;