AVFoundation 如何循环播放一段特定时间的音频?
Posted
技术标签:
【中文标题】AVFoundation 如何循环播放一段特定时间的音频?【英文标题】:AVFoundation How to loop an audio for a specific duration? 【发布时间】:2020-05-09 18:27:40 【问题描述】:我想在给定的持续时间内循环播放特定的音频。
例如;
10 秒。音频文件。 预期循环持续时间:7 分钟。
在这个循环中,我必须观察循环迭代的剩余时间。
我尝试了AVQueuePlayer
和AVAudioLooper
,但没有优雅的选项来跟踪循环迭代的总持续时间/时间。
我乐于接受新想法。
【问题讨论】:
你考虑过使用scheduledTimerWithTimeInterval:repeats:block:
吗?
其实我没有考虑过使用Timer。这可能是一个解决方案。但是,我很好奇是否有一些内置的解决方案。
【参考方案1】:
尝试使用 AVAudioPlayer。 AVAudioPlayer 具有名为 numberOfLoops 的属性,用于循环播放。
audioPlayer.numberOfLoops = 5
【讨论】:
使用 numberOfLoops 不允许您确定最长持续时间。 numberOfLoops 可能比预期的要长。 另外,我通过网络检索这些音频。 AVAudioPlayer 仅适用于本地音频文件。 找不到预建选项,但 AVQueuePlayer 和 Timer 的组合可以做到。以上是关于AVFoundation 如何循环播放一段特定时间的音频?的主要内容,如果未能解决你的问题,请参考以下文章
IOS开发中AVFoundation中AVAudioPlayer的使用
如何防止使用 AVFoundation 录制视频中断当前正在播放的任何全局音频(Swift)?