2012-03-28 15 views
1

ユーザーのサイレント/ミュートスイッチがサイレント/バイブレーションに設定されていても、アプリケーションに音声を再生させる「正しい」方法とは何ですか?iOS:サイレントモードでオーディオを再生する

背景: 私は実際にデバッグ段階で動作していましたが、Appleにアプリケーションを提出してから、後でアプリケーションストアからダウンロードしたとき、音声はサイレントモードで無効になりました!ここで私はそれがデバッグ段階で働いて得た方法である:オーディオを使用して演奏された

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

NSString *path = [[NSBundle mainBundle] pathForResource:fileName ofType:@"mp3"]; 
AVAudioPlayer *theAudio = [[AVAudioPlayer alloc] initWithContentsOfURL:[NSURL fileURLWithPath:path] error:NULL]; 
theAudio.delegate = self; 
[theAudio play]; 
+0

なぜ、ユーザーが聞きたくないときにアプリを再生したいのですか?あなたはこれがあなたのユーザーが望むものだと確信していますか? – Hyperbole

+0

私は、「あなたはサイレントモードではオーディオを再生してはいけない」というルールがあることを知っていますが、私のアプリは例外的なものです。音を聞くことを期待し、何も得られず、静かなスイッチが無音に設定されていることを認識していないユーザーから実際に来るでしょう。 – user1221973

+0

おそらく、ミュート状態を検出し、デバイスのミュートを解除するまで、音が聞こえないことをユーザーに知らせることができます。とにかくAppleのHIGと一線を画している。 – Hyperbole

答えて

0

私はそれは同じことを行い思いますが、あなたはとても似AVFoundation throught設定を設定し、試してみました?

[[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlayback error:nil]; 
    [[AVAudioSession sharedInstance] setActive: YES error: nil]; 
+0

これも同様ですが、デバッグステージを過ぎても一度失敗しないという保証はありません。 – user1221973

関連する問題