2009-05-29 15 views
7

私は、いくつかのアプリが起動時にプログラムによってiTunesをミュートしていることに気付きました。これはどのように達成されますか?私はバックグラウンドミュージックを持ったゲームを持っていて、iTunesを止めたり、iTunesの演奏メッセージを聞いてゲームのバックグラウンドミュージックを止めることができます。iPhone:iTunesが再生されているかどうかを検出するには?

thx、 marc。

答えて

8

あなたはそうする必要はありません。オーディオセッションを使用すると、オーディオの動作を決めることができます。​​から

オーディオセッションインターフェイスを使用すると、アプリケーションの オーディオ行動の側面を指定し、iPhone オーディオ環境内共生 にそれを設定 。あなたはこのような 自分で質問をすることから始め:

  • あなたのオーディオは、着信/サイレントスイッチによって消音されるようにしたいですか? オーディオがアプリケーション を正常に使用するために不可欠でない場合、答えはおそらく「はい」です。 (ユーザーが 誰賢明との会談で、あなたのゲーム を実行することができることを理解するだろう。)

  • あなたはiPodのオーディオはときに、オーディオ 開始再生を続行しますか?これは のバーチャルピアノに適しており、ユーザーはライブラリ内の曲に合わせて を再生できます。 しかし、iPodオーディオを停止するには 、ストリーミングラジオの場合は アプリケーションを使用してください。

は、あなたはおそらくこれが欲しい:

UInt32 sessionCategory = kAudioSessionCategory_SoloAmbientSound; 
AudioSessionSetProperty (
    kAudioSessionProperty_AudioCategory, 
    sizeof (sessionCategory), 
    &sessionCategory 
); 

は、より多くの行動タイプについては、Audio Session Categoriesを確認するか、全体Audio Session Programming Guideをお読みください。

0

私は反対の問題がありました。私のアプリは、起動後に音のない短いビデオを再生します。これにより、バックグラウンドでiTunesミュージックの再生がミュートされました。

音楽演奏を保つために、私はapplicationDidFinishLaunchingでこれを追加します。

NSError* error; 
    [[AVAudioSession sharedInstance] setCategory: AVAudioSessionCategoryAmbient error: &error];  
    if (error) NSLog(@"Unable to configure Audio"); 
関連する問題