2010-12-08 4 views

답변

46

카테고리 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 
} 
당신이 AVFoundation은 당신의 위임에 넣고 가져온 후
+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

속성 사용을위한 다른 대안 ApplicationAppudioSession? apple에는 useApplicationAudioSession에 대한 대체 속성이 없다는 것을 알았습니다. ( –

1

:

[[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. 
} 
관련 문제