私はこれに2日間費やしましたが、どこにも行きませんでした。[MPMusicPlayerController applicationMusicPlayer] を使用して、ユーザーの iPod ライブラリから選択したオーディオを再生し、バックグラウンドで実行し、リモート イベントをサポートしようとしています。実際に音楽を再生するのは簡単です。インスタンスを取得し、曲を選択し、ミュージック キューを割り当てて再生します。やった、やった。しかし... a) バックグラウンドで再生することができず、b) フォアグラウンドにいても、リモート コントロール イベントをまったく動作させることができません!
そして、あなたが尋ねる前に、はい、私は plist エントリ、オーディオ セッション カテゴリ、リモート イベントの取得に興味があることを伝える呼び出しを設定し、それらをリッスンする最初の応答者を設定しました。私が見つけることができた主題に関するすべてのドキュメントを読みました* (*このトピックについてまったく明確ではなく、サンプルコードがないことでAppleを責めます!)それに関連する WWDC ビデオ (サンプルからコードを正確にコピーするために画面をフリーズすることさえあります...) したがって、このリストにないものを見逃していない限り、これらの回答のいずれかを返信しても役に立ちません。
もう1つ...ドキュメントによると、アプリケーションセッションを使用しないMPMusicPlayerControllerの使用について明示的に話しています。常にシステム セッションを使用します。(それ自体が私の質問に答えるかもしれませんが、ドキュメントはそれを明確に言っていないので、よくわかりません。したがって、この質問です。)
そうは言っても、2日経った私の考えは次のとおりです。
MPMusicPlayerController を使用する場合、呼び出すメソッドや設定する plist エントリに関係なく、アプリがバックグラウンドで実行されることはありません。限目。ipodMusicPlayer インスタンスを使用すると、音楽が再生され続けますが、これは再生しているのはアプリではなく iPod であるためです。代わりに applicationMusicPlayer インスタンスを使用すると、バックグラウンドに移行すると音楽が停止します。どちらの場合も、アプリは中断されています。
ipodMusicPlayer インスタンスまたは applicationMusicPlayer インスタンスの使用に関係なく、すべてのリモート イベントは、明示的に要求した場合でも、iPod アプリケーションではなく、iPod アプリケーション自体に送信されます。applicationMusicPlayer インスタンスを使用していて、リモコンを使用して「再生」を選択すると、iPod アプリがコマンドを受信するため、オーディオがダックアウトして中断され、iPod アプリで再生が開始されます。代わりに ipodMusicPlayer を選択した場合は、基本的にリモート イベントを実際に受信する iPod アプリをリモートで制御することに関心があるだけであると明示的に述べているため、もちろん問題ではありません。
下部にあるクイック スイッチ コントロールのアイコンがアプリのアイコンに変わることはありません。これは、アプリが実際にイベントを受信するように設定されていないためです。iPod アプリケーションは、そのアイコンがそこに表示される理由です。
だから私が知りたいのは... 私はここで間違っていますか? MPMusicPlayerController の使用に成功し、リモート イベントを傍受できた人はいますか? バックグラウンド ミュージックをサポートする applicationMusicPlayer を使用して、ユーザーの iPod をいじらないようにしたいのですが、より大きな問題はリモート コントロール通知です。つまり、ipodMusicControl を使用し、アプリをフォアグラウンドに保持してそれらをインターセプトする必要がある場合です。メッセージ、それでいいです。それは醜いですが、少なくともそれは何かです。
コード例、または少なくとも組み込みのアプリ テンプレートの 1 つに対する明示的な手順は、非常に高く評価されます。(実装さえ必要ありません...ただの手順です。うまくいけば、人々が質問に答え続ける避けられない「それはまだNDAの下にあります」ということをなだめるでしょう。)
マーク