5

私は、ユーザーのiPhoneミュージックライブラリから音楽を再生する音楽アプリを設計しています。これに使用するオーディオプレーヤー(AVAudioPlayer、AVPlayer、またはMPMusicPlayer)が正しいかどうかを調べるのに問題があります。iPhone - 私のアプリのための適切なオーディオプレーヤーは何ですか?

マイアプリは以下を実行する必要があります。

  • プレイ音楽をiPhoneの音楽ライブラリからデバイス/システムボリューム
  • 別に
  • Controlアプリの音楽の音量が時にアプリを移動するアプリの音楽を再生し続けます背景
  • キャッチイベント時に曲の次の曲への変更や私の研究から

終了上記の3つのオーディオプレーヤーのそれぞれは、私のアプリに必要なタスクのいくつかを行うように思えますが、それらのすべてではありません。 AVPlayerは、そのボリュームがデバイス/システムボリュームに依存していることを除いて最も近いと思われる。

これを達成するための推奨事項や回避策はありますか?私はかなりの時間のためにこれを私の脳をぶち壊してきたので、すべてのヘルプはすべてに感謝されます。

答えて

1

EDIT

MPMusicPlayerControllerクラスは、実際に+ applicationMusicPlayer経由でのインスタンスを取得するときに、バックグラウンドオーディオの再生をサポートしていません。その場合、MPMusicPlayerを使用してiPodミュージックライブラリを照会するだけです。ユーザーが曲を選択すると、MPMediaItemにアセットURLが問い合わせられ、AVPlayerの+playerWithURLに入力され、再生パラメータを完全に制御できます。

-

私はMPMusicPlayerControllerをお勧めします。

  1. MPMusicPlayerControllerは、iTunesライブラリ内のオーディオファイルを再生するための低レベルの詳細を処理します。
  2. クラスメソッド-applicationMusicPlayerを使用して、iPodシングルトンのローカルコピーを取得できます。そこから、自分のアプリケーションのためだけにvolumeプロパティを設定することで、そのボリュームを制御できます。
  3. 私が引き受けるMPMusicPlayerControllerは、既に構築されたバックグラウンドオーディオをサポートしています。そうでない場合は、それはあなたが設定する任意のオブジェクトあなたが選ぶことができる
  4. http://www.sagorin.org/2011/11/29/ios-playing-audio-in-background-audio/Playing background audioを参照)動作させるために、アプリケーションのオーディオセッションコンテキストを変更することができますあなたのアプリケーション固有のMPMusicPlayerControllerオブジェクトのKVOオブザーバーになれます。この方法で、nowPlayingItemプロパティが変更されたときに通知を受けることができます。

この高度な説明で十分です。それ以上の説明が必要な場合はお知らせください。

+0

appleのAddMusicサンプルコード – amergin

+0

MPMusicPlayerのappmusicplayerメソッドは、アプリがバックグラウンドに移動すると音声をサポートしません。その例ではAVPlayerを使用しているため、AVPlayerを使用していますバックグラウンドオーディオセッションがappmusicplayerで動作するかどうかはわかりません。提案? – Matt

+0

こんにちは。私はそれについてのドキュメントを見逃してしまいました。その次にすべきことは、MPMusicPlayerを使用してiPodライブラリにアクセスして問い合わせることです。ユーザがソングを選択すると、 'MPMediaItem'クラスの' MPMediaItemPropertyAssetURL'プロパティで曲のURLを取得し、そのURLをAVPlayerの '+ playerWithURL'メソッドに渡すことができます。そこから、実際にAVPlayerを使って実際に曲を再生します。 iPodライブラリーにアクセスしながら再生を細かく制御できるはずです。 –

関連する問題