AVPlayer 和 AVAudioPlayer 在功能方面有啥区别?
Posted
技术标签:
【中文标题】AVPlayer 和 AVAudioPlayer 在功能方面有啥区别?【英文标题】:What's the difference between AVPlayer and AVAudioPlayer in terms of functionality?AVPlayer 和 AVAudioPlayer 在功能方面有什么区别? 【发布时间】:2015-07-03 23:05:40 【问题描述】:我一直在尝试使用AVAudioPlayer
在我的应用程序中播放远程 MP3 文件,并且我已经阅读了 Stack Overflow 上的其他一些答案,但我仍然无法让它工作。我正在阅读的常见建议是使用AVPlayer
而不是AVAudioPlayer
。我不知道这是为什么。此外,在其中一个问题中,接受的答案提到需要创建AVPlayer
的实例才能在应用程序中使用它。我该怎么办?
【问题讨论】:
答题有***.com/questions/3282866/avplayer-vs-avaudioplayer 【参考方案1】:您阅读的内容是正确的。创建 AVPlayer 的实例将允许您成功运行代码。
你应该在你想调用它的地方初始化你的 AVPlayer。
var myPlayer = AVPlayer()
现在,在代码中的一个单独位置,尝试如下操作:
func playAudio()
//initialize whatever you have to (you seem to have that correct)
//now call myPlayer.play(), and that should work correctly
如果这有帮助,请告诉我。
【讨论】:
耶!它现在似乎工作了...... idk为什么在函数之外初始化 AVPlayer 有帮助。你能解释一下吗? 谢谢。但是如何从 AVPlayer 获取持续时间? @user3163404 您可以通过 currentItem 方法“yourAVPlayerInstance.currentItem.duration”获取它。 @user817238593 我相信在函数中初始化一个项目并取消分配与范围有关,以及当变量不再使用时 Swift 如何自我清理。例如,每当您在范围内声明变量时,该类都无权访问它。一旦函数运行,我假设它用来保存信息的任何变量都是垃圾收集的。因此,如果您在完成它的函数内初始化 AVPlayer 实例,则会被垃圾收集和释放。以上是关于AVPlayer 和 AVAudioPlayer 在功能方面有啥区别?的主要内容,如果未能解决你的问题,请参考以下文章
使用 MPRemoteCommandCenter 为 AVPlayer 和 AVAudioPlayer 添加当前时间和持续时间的位置
iOS AvPlayer AvAudioPlayer音频的后台播放问题
本地文件使用 AVAudioPlayer 播放,但不使用 AVPlayer?
访问 iPod 库以使用 AVAudioPlayer 或使用 AVPlayer 远程控制事件
如何仅使用 AVAudioPlayer 或 AVPlayer 播放 PCM 数据/缓冲区?
iOS 13+ 应用程序的 AVAudioPlayer AVPlayer AVQueuePlayer MPMusicPlayerController MPRemoteCommandCenter MPN