swift - 如何检测 AVQueuePlayer 播放完毕?
问题描述
我正在使用播放多个音频文件的队列AVQueuePlayer
。我无法检测到最后一个音频文件播放完毕。
因为AVAudioPlayer
有AVAudioPlayerDelegate
with audioPlayerDidFinishPlaying
,但是这似乎不适用于AVQueuePlayer
。
如何检测AVQueuePlayer
完成的播放?
解决方案
弄清楚了。插入项目前需要添加:
NotificationCenter.default.addObserver(self, selector: #selector(self.playerDidFinishPlaying(sender:)), name: NSNotification.Name.AVPlayerItemDidPlayToEndTime, object: playerItem
然后调用
@objc func playerDidFinishPlaying(sender: Notification) {
print("Finished playing")
}
推荐阅读
- swift - Swift DateIntervalFormatter:即使间隔跨越多天,也将日期保留在字符串之外
- python - 为什么我不能删除数据框中的任何列?
- windows - 无法启动 Windows 10 搜索索引
- google-apps-script - 使用事件订阅将 Slack 数据推送到 Google 表格
- node.js - Mongodb黑客
- javascript - Javascript UWP 应用程序 - 启动时最大化应用程序窗口
- python - 为 3D 数组编码转置函数
- microservices - Axon - 同步 Saga / 命令验证 - 唯一性
- python-3.x - 如何让 Python 3 匹配“%”?
- c# - ChromeDriver 仅支持运行 selenium 测试的旧版本错误