2010-12-08 9 views

答えて

46

AVAudioSessionカテゴリAVAudioSessionCategoryPlaybackを使用すると、あなたのアプリはYoutubeアプリのようなミュートスイッチを無視します。例えば

(コメントでケンPletzerに触発さ):

#import <AVFoundation/AVFoundation.h> 

// note: you also need to add AVfoundation.framework to your project's 
// list of linked frameworks 
NSError *error = nil; 
BOOL success = [[AVAudioSession sharedInstance] 
       setCategory:AVAudioSessionCategoryPlayback 
       error:&error]; 
if (!success) { 
    // Handle error here, as appropriate 
} 
+0

もっと具体的には NSError* error; [[AVAudioSession sharedInstance] setCategory: AVAudioSessionCategoryPlayback error: &error]; if(error) { }

+0

また、AVFoundationフレームワークと#import "AVFoundation/AVAudioSession.h"を追加する必要があります。 –

+0

@KenPletzer Kenに感謝します。私はあなたのコード(エラーの存在よりもむしろ成功の値を調べる)を微調整し、答えに入れました。 –

2
_player.useApplicationAudioSession = NO; 
+2

これはiOS6として推奨されていません – tassock

+0

プロパティuseApplicationAudioSessionの他の代替手段はありますか?私はappleがuseApplicationAudioSessionの代わりのプロパティを持っていないことを発見しました:( –

1

あなたはAVFoundationは自分のデリゲートでこれを入れてインポ​​ートした後:

[[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlaybackエラー:nil];スウィフトで

1

:あなたは、将来的に誰のために

do{ 
    try AVAudioSession.sharedInstance().setCategory(AVAudioSessionCategoryPlayback) 
} catch { 
    //Didn't work 
} 
1

(アプリケーションの冒頭で、たとえば)、サウンド/ビデオを再生する前に、一度、私はこれはすでに回答されているけど、私が持っていたこれを行ってください私のアプリでビデオを再生することで、スポットライトやYouTubeなどのアプリがオーディオ再生を停止するようになったため、次のようになります。

NSError *silentSwitcherror = nil; 
BOOL silentSwitchSuccess = [[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlayback withOptions:AVAudioSessionCategoryOptionMixWithOthers error:&silentSwitcherror]; 
if (silentSwitchSuccess) 
{ 
//put whatever video code you are trying to play 
} 
else 
{ 
//put how to handle failed instances. 
} 
関連する問題