一部のアプリは、起動時に iTunes をプログラムでミュートする (実行中の場合) ことに気付きました。これはどのように達成されますか?バックグラウンド ミュージックのあるゲームがあり、ゲームのバックグラウンド ミュージックを停止できるように、iTunes を停止するか、少なくとも iTunes が再生されているというメッセージを取得したいと考えています。
thx、マーク。
その必要はありません。Audio Session を使用すると、オーディオの動作を決定できます。
Audio Session Programming Guideから:
オーディオ セッション インターフェイスを使用して、アプリケーションのオーディオ動作の側面を指定し、iPhone オーディオ環境内で調和して動作するように構成します。次のような質問を自問することから始めます。
着信音/サイレント スイッチで音声をミュートしますか? アプリケーションを正常に使用するためにオーディオが不可欠でない場合、答えはおそらく「はい」です。(ユーザーは、誰も賢くない会議でゲームを実行できることを高く評価します。)
オーディオの開始時に iPod オーディオの再生を続けますか? これは、仮想ピアノに適している可能性があり、ユーザーはライブラリ内の曲に合わせて演奏できます。ただし、ストリーミング ラジオ アプリケーションの場合は、iPod オーディオを停止する必要があります。
おそらくこれが必要です:
UInt32 sessionCategory = kAudioSessionCategory_SoloAmbientSound;
AudioSessionSetProperty (
kAudioSessionProperty_AudioCategory,
sizeof (sessionCategory),
&sessionCategory
);
その他の動作タイプについては、オーディオ セッション カテゴリを確認するか、オーディオ セッション プログラミング ガイド全体をお読みください。
私は反対の問題を抱えていました。私のアプリは、起動後に音声なしで短いビデオを再生します。これにより、バックグラウンドで再生されている iTunes の音楽がミュートされました。
音楽を再生し続けるために、これを applicationDidFinishLaunching に追加します。
NSError* error;
[[AVAudioSession sharedInstance] setCategory: AVAudioSessionCategoryAmbient error: &error];
if (error) NSLog(@"Unable to configure Audio");