AVFoundation 如何循环播放一段特定时间的音频?

Posted

技术标签:

【中文标题】AVFoundation 如何循环播放一段特定时间的音频?【英文标题】:AVFoundation How to loop an audio for a specific duration? 【发布时间】:2020-05-09 18:27:40 【问题描述】:

我想在给定的持续时间内循环播放特定的音频。

例如;

10 秒。音频文件。 预期循环持续时间:7 分钟。

在这个循环中,我必须观察循环迭代的剩余时间。

我尝试了AVQueuePlayerAVAudioLooper,但没有优雅的选项来跟踪循环迭代的总持续时间/时间。

我乐于接受新想法。

【问题讨论】:

你考虑过使用scheduledTimerWithTimeInterval:repeats:block:吗? 其实我没有考虑过使用Timer。这可能是一个解决方案。但是,我很好奇是否有一些内置的解决方案。 【参考方案1】:

尝试使用 AVAudioPlayer。 AVAudioPlayer 具有名为 numberOfLoops 的属性,用于循环播放。

audioPlayer.numberOfLoops = 5

【讨论】:

使用 numberOfLoops 不允许您确定最长持续时间。 numberOfLoops 可能比预期的要长。 另外,我通过网络检索这些音频。 AVAudioPlayer 仅适用于本地音频文件。 找不到预建选项,但 AVQueuePlayer 和 Timer 的组合可以做到。

以上是关于AVFoundation 如何循环播放一段特定时间的音频?的主要内容,如果未能解决你的问题,请参考以下文章

IOS开发中AVFoundation中AVAudioPlayer的使用

如何防止使用 AVFoundation 录制视频中断当前正在播放的任何全局音频(Swift)?

如何使用 AVFoundation 以正确的音高播放不同采样率的音频文件?

[iOS开发]AVFoundation浅学习

[iOS开发]AVFoundation浅学习

点击自定义键盘按钮时如何播放铃声