このトピックに関するすべてのスレッドは非常に古く (5 歳以上)、明確なモダン アプローチを形成できないように思われるため、2020 (Swift 5、Xcode 11) に向けて要約できることを願っています。
iOS 13を搭載した iPhone 用の AUDIO (音楽だけでなく) プレーヤー アプリを先進的な方法で構築する場合 (iOS 14 をサポートしないものは気にしないでください。つまり、8 未満のものはありません)、どのようなキットが必要ですか? /要件が次の場合に使用するクラス...
- アプリは、ダウンロードした MP3 ファイルをローカルに保存して再生できます (必ずしもストリーミングまたは埋め込みとは限りません)。
- ユーザーは、オーディオに対する基本的なプレーヤー コントロール (再生/一時停止/スクラブ/ボリューム) を持っています。
- アプリには、アプリまたはネイティブ iOS コントロールによっていつでも調整できるオーディオ キュー (トラック再生の順序) があります。
- ユーザーは、キューをトラバース (後方/前方シーク) できます。
- ユーザーは、電話がペアリングされている Bluetooth オーディオ デバイスで再生することを選択できます。
- 音声はバックグラウンドで再生できます(画面がオフの場合、または別のアプリで)。
- アプリは追跡をトリガーし、バックグラウンドでキューを調整できます(ユーザーの操作なし)。
- オーディオは、ネイティブ iOS コントロール (RemoteControlEvents) と統合されます。
- このアプリは、Apple のガイドラインに従って「Now Playable App」です。
ボーナス(可能であれば):
- アプリのオーディオは、経路案内アプリのように再生中の音楽を重ねることができます (これにより、バックグラウンド機能と「現在再生中」機能が無効になる可能性があることは認識していますが、アプリ開発者が方法を選択するためのより明確な理由付けについての議論に役立つ可能性があります)。
では、AVAudioPlayer または AVPlayer または MPMusicPlayerController を使用しますか? MPRemoteCommandCenter または MPNowPlayingInfoCenter?
おそらく、いくつかの要件は相互に排他的であるか、不可能でさえありますが、オーディオ再生を制御する方法が非常に多く、ユースケース間の明確な線引きがない理由、またはオーディオが音楽であるかスピーチであるかが重要である理由を理解できません、ダウンロードまたはストリーミング。Apple では、オーディオ、特に音声は明らかにビデオに次ぐものですが、プレイリスト、ポッドキャスト、その他の種類のオーディオ アプリケーションなど、特定の種類の基本的なアプリケーションについては、何らかの方向性が示されているはずです。