gpt4 book ai didi

avplayer - 适用于 iOS 13+ 应用的 AVAudioPlayer AVPlayer AVQueuePlayer MPMusicPlayerController MPRemoteCommandCenter MPNowPlayingInfoCenter 之间的区别

转载 作者:行者123 更新时间:2023-12-03 21:57:47 28 4
gpt4 key购买 nike

关于这个主题的所有线程都非常老(5+ 哟),我似乎无法形成一个清晰的现代方法,所以希望这可以在 2020 年(Swift 5,Xcode 11)进行总结。
如果您要使用 为 iPhone 构建一个 AUDIO(不仅仅是音乐)播放器应用程序iOS 13 以一种前瞻性的方式(不要关心任何不支持 iOS 14 的东西——所以没有低于 8 的东西),如果要求是……你会使用什么工具包/类……

  • 应用程序可以在本地存储和播放下载的 MP3 文件(不一定是流式传输或嵌入的)。
  • 用户对音频有基本的播放器控制(播放/暂停/滑动/音量)。
  • 应用程序有一个音频队列(轨道播放顺序),可以通过应用程序或 native iOS 控件随时调整。
  • 用户可以遍历(向后/向前搜索)队列。
  • 用户可以选择在手机配对的蓝牙音频设备上播放。
  • 音频可以播放在后台 (当屏幕关闭时,或在另一个应用程序中)。
  • 该应用程序可以触发跟踪和调整队列在后台 (没有用户交互)。
  • 音频与 native iOS 控件 (RemoteControlEvents) 集成。
  • 根据 Apple 的指南,该应用程序是“现在可播放的应用程序”。

  • 奖金(如果可能的话):
  • 应用音频可以像路线应用一样覆盖播放音乐(我意识到这可能会否定背景和“正在播放”功能,但也许它有助于讨论,以便更清晰地推理为应用开发人员选择一种方法)。

  • 那么你会使用 AVAudioPlayer 或 AVPlayer 或 MPMusicPlayerController 吗? MPRemoteCommandCenter 还是 MPNowPlayingInfoCenter?
    也许有些要求是相互排斥的,甚至是不可能的,但我不明白为什么有这么多方法来控制音频播放,而它们的用例之间没有明确的划分,或者为什么音频是音乐还是语音很重要,下载或流式传输。在 Apple,音频显然是视频的二等公民,尤其是语音,但我认为现在某些类型的基本应用程序应该有一些方向,比如播放列表、播客和其他类型的音频应用程序。

    最佳答案

    我会尽我所知尝试回答你的问题:
    应用程序可以在本地存储和播放下载的 MP3 文件(不一定是流式传输或嵌入的)。

  • 您可以使用 AVPlayerAVAudioPlayer .AVPlayer有更多的能力。
    查看 Apple 的文档 hereAVPlayer .
    hereAVAudioPlayer .

  • 用户对音频有基本的播放器控制(播放/暂停/滑动/音量)。
  • AVAudioPlayer对播放的声音文件具有所有必需的控制。

  • 应用程序有一个音频队列(轨道播放顺序),可以由应用程序随时调整。
  • 您需要使用 AVQueuePlayer继承自 AVPlayer .
    检查苹果的文档 here .

  • 用户可以选择在手机配对的蓝牙音频设备上播放。
  • 你从上面选择哪一个都没有关系。此 AVAudioSession选项。
    检查文档 here .

  • 音频可以在后台播放(当屏幕关闭时,或在另一个应用程序中)。
  • 您需要添加 BackgroundMode您的应用程序的功能并检查音频、播放选项。

  • 音频可以在后台触发轨道和调整队列(无需用户交互)。
  • 您需要添加应用扩展来操作您的 queuePlayer。

  • 音频与 native iOS 控件 (RemoteControlEvents) 集成。
  • 使用 MPNowPlayingInfoCenter并更新其信息,以便能够更新歌曲名称、艺术家、艺术作品等... Apple 的文档 here .

  • 除了 MPRemoteCommandCenter收听事件并相应地更新您的播放器 docs .
    应用音频可以像路线应用一样覆盖播放音乐(我意识到这否定了背景和“正在播放”功能,但也许它有助于更​​清晰的推理来为应用开发人员选择方法的讨论。
  • 也在 AVAudioSession's类别选项,添加 .mixWithOthers选项。

  • 那么你会使用 AVAudioPlayer 或 AVPlayer 或 MPMusicPlayerController 吗? MPRemoteCommandCenter 还是 MPNowPlayingInfoCenter?
    使用 MPMusicPlayerController如果您从设备库播放。
    我想以上总结了它的亮点。当您将这些东西一起使用时,您应该注意很多事情,并非所有选项都适用于所有 AVAudioSession's模式,例如。
    Players 中有很多属性,它的设置和错误的组合可能会阻止您的播放器工作。

    关于avplayer - 适用于 iOS 13+ 应用的 AVAudioPlayer AVPlayer AVQueuePlayer MPMusicPlayerController MPRemoteCommandCenter MPNowPlayingInfoCenter 之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61148029/

    28 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com