2012-05-07 17 views
0

これに他のトピックがありますが、私はそれらにコメントできません。リストされたすべてのアプローチを試しました。AVAudioPlayerはミュートを尊重しません

私のアプリは、それが開いたときに再生する曲を持っていますが、iPad上でミュートを打つことは(それが曲をミュートすべきである)は効果がありません。

ここで私は音を開始する私のコードです:

audioPlayer = [[AVAudioPlayer alloc] initWithContentsOfURL:[[NSBundle mainBundle] URLForResource:@"intro_theme" withExtension:@"wav"] error:NULL];` 
[audioPlayer play]; 

そして、ここで私が試した様々なアプローチです:

[[AVAudioSession sharedInstance] setCategory: AVAudioSessionCategoryPlayback error: nil]; 

[[AVAudioSession sharedInstance] setCategory: AVAudioSessionCategoryAmbient error: nil]; 

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

他の人にはミュートを尊重するAVAudioPlayerを得ることができるように見えるが、オプション - 任意のアイデア?

答えて

1

カテゴリAVAudioSessionCategorySoloAmbientを試しましたか?

Apple's docs: このカテゴリを使用すると、他のアプリケーションの音声は消音されます。オーディオはスクリーンロックとサイレントスイッチ(iPhoneのRing/Silentスイッチと呼ばれます)によって消音されます。ここで

+0

チップをありがとう - それは残念ながら働かなかった。プレイヤーを作成した後、プレイを呼び出す前、プレイを呼び出した後、タイマーを使用してプレイを呼び出した後に1秒後にプレイヤーを作成する前にこれをテストしました。 – user441669

+0

カテゴリを設定した後、 '[[AVAudioSession sharedInstance] setActive:YES error:nil];'をコールしていますか? – KaosDG

+0

私はそうではありませんでしたが、同じ3か所で試してみました。成功しても効果は返されません。 – user441669

0

は、ソリューションです:

私はsetCategoryへの呼び出しの後に1秒までNSTimerを使用して、私のオーディオの再生を遅らせました。これはiPad 3 & iPad 1で動作しています(2でテストしていません)。

関連する問題