2011-11-16 8 views
6

iPhoneの状態を検出する手段がApple mute/silenceiOS 5にありません。しかし、オーディオファイルを再生してランタイムを測定することで、これを検出する技術を試しました。しかし、私のiPhoneはミュートされていても、オーディオファイルはまだ全期間再生されました。私はaudioPlayerDidFinishPlayingが呼び出される前に[AVAudioPlayer play]と計算時間を使用しています。あなたはオーディオファイルを再生するためのトリックを知っていますか?電話がミュートされている場合、すぐに/すぐに完了しますか?iOS 5のiPhoneミュートスイッチの検出

答えて

4

更新:申し訳ありません以下のコードは私のためにうまく動作しますが、私はiOS4を使用しています。 iOS5の場合、この回答はあなたの問題を解決するものです - Detecting the iPhone's Ring/Silent/Mute switch using AVAudioPlayer not working?

このコードは必要なものです。グローバルgAudioSessionInited varを定義します。このフラグは、ミュートスイッチがオンかオフかを示します。

// "Ambient" makes it respect the mute switch. Must call this once to init session 
if (!gAudioSessionInited) 
{ 
    AudioSessionInterruptionListener inInterruptionListener = NULL; 
    OSStatus error; 
    if ((error = AudioSessionInitialize (NULL, NULL, inInterruptionListener, NULL))) 
     NSLog(@"*** Error *** error in AudioSessionInitialize: %d.", error); 
    else 
     gAudioSessionInited = YES; 
} 

SInt32 ambient = kAudioSessionCategory_AmbientSound; 
if (AudioSessionSetProperty (kAudioSessionProperty_AudioCategory, sizeof (ambient), &ambient)) 
{ 
    NSLog(@"*** Error *** could not set Session property to ambient."); 
} 
+0

hi。それはイオスで働いていますか? – Gopinath

+0

はいこれはios向けです。あなたが話しているバージョンは... –

+1

間違えて申し訳ありません。それはios5を働いていますか?遅れて申し訳ありません。 – Gopinath

関連する問題