iOS 동 영상 인 터 럽 트 배경 음악 재생 처리 방법
해결 방안:
오디 오 를 재생 할 때 다른 프로그램 을 음소 거 시 키 거나 다른 프로그램의 오디 오 위 에서 오디 오 를 재생 합 니 다.
AVAudioSession 클래스 는 AVFoundation 프레임 워 크 에서 도입 된다.모든 iOS 응용 프로그램 에는 오디 오 세 션 이 있 습 니 다.이 세 션 은 AVAudioSession 클래스 의 shared Instance 클래스 방법 으로 접근 할 수 있 습 니 다.다음 과 같 습 니 다.
AVAudioSession *audioSession = [AVAudioSession sharedInstance];
AVAudioSession 클래스 의 인 스 턴 스 를 얻 은 후에 오디 오 세 션 대상 의 setCategory:error:인 스 턴 스 방법 을 호출 하여 iOS 에서 사용 할 수 있 는 다양한 유형 에서 선택 할 수 있 습 니 다.사용 가능 한 오디 오 세 션 종 류 를 보 여 줍 니 다:
AVAudioSessionCategoryAmbient
이 분 류 는 다른 애플 리 케 이 션 의 소 리 를 멈 추 지 않 습 니 다.반대로 오디 오 를 다른 애플 리 케 이 션 의 소리 위 에 재생 할 수 있 습 니 다.예 를 들 어 iPod.메 인 UI 스 레 드 가 정상적으로 작 동 합 니 다.AVAPlayer 를 호출 하 는 prepareToPlay 와 play 방법 은 모두 YES 로 돌아 갑 니 다.
AVAudioSessionCategorySoloAmbient
이것 은 AVAudioSession Category Ambient 클래스 와 매우 비슷 합 니 다.예 를 들 어 iPod 프로그램 과 같은 다른 프로그램의 오디 오 재생 을 중단 합 니 다.장치 가 음소 거 모드 로 설정 되면 오디 오 재생 이 중 단 됩 니 다.
AVAudioSessionCategoryRecord
이것 은 다른 응용 프로그램의 소리(예 를 들 어 iPod)를 멈 추고 응용 프로그램 도 오디 오 재생 을 초기 화 할 수 없 게 합 니 다(예 를 들 어 AVAudio Player).이런 모드 에서 너 는 녹음 만 할 수 있다.이 카 테 고 리 를 사용 하면 AVAudioPlayer 의 prepareToPlay 를 호출 하면 YES 로 돌아 가지 만,play 방법 을 호출 하면 NO 로 돌아 갑 니 다.메 인 UI 인터페이스 가 정상적으로 작 동 합 니 다.이 때 장치 화면 이 사용자 에 의 해 잠 겨 있어 도 녹음 은 계 속 됩 니 다.
AVAudioSessionCategoryPlayback
이 분 류 는 다른 응용 프로그램의 오디 오 재생 을 금지 합 니 다(예 를 들 어 iPod 응용 오디 오 재생).AVAudio Player 의 prepareToPlay 와 play 방법 을 사용 하여 응용 프로그램 에서 소 리 를 재생 할 수 있 습 니 다.메 인 UI 인터페이스 가 정상적으로 작 동 합 니 다.이 때 화면 이 잠 겨 있 거나 장치 가 음소 거 모드 라 도 오디 오 재생 은 계 속 됩 니 다.
AVAudioSessionCategoryPlayAndRecord
이 카 테 고리 에 서 는 사 운 드 재생 과 녹 화 를 동시에 할 수 있 습 니 다.음성 녹음 이나 재생 이 시작 되면 다른 애플 리 케 이 션 의 음성 재생 이 중단 된다.메 인 UI 인터페이스 가 정상적으로 작 동 합 니 다.이 때 화면 이 잠 겨 있 거나 장치 가 음소 거 모드 로 되 어 있어 도 오디 오 재생 과 녹 화 는 계 속 됩 니 다.
AVAudioSessionCategoryAudioProcessing
이 분 류 는 오디 오 재생 이나 녹화 가 아 닌 오디 오 처리 에 사 용 됩 니 다.이런 모드 를 설정 하면 응용 프로그램 에서 어떤 소리 도 재생 하고 녹음 할 수 없습니다.AVAPlayer 를 호출 하 는 prepareToPlay 와 play 방법 은 모두 NO 로 돌아 갑 니 다.다른 오디 오 재생,예 를 들 어 iPod 도 이 모드 에서 중단 합 니 다.
솔 루 션:우리 가 개발 한 응용 프로그램 이 재생 될 때 다른 응용 프로그램의 재생 을 중단 합 니 다.우리 의 응용 프로그램 이 재생 되 었 을 때 다른 응용 프로그램의 재생 을 계속 합 니 다.핵심 코드 는 다음 과 같 습 니 다.
구체 적 실현
백 스테이지 음악 재생 일시 정지 및 계속
// , audio session
+ (void)resumeBackgroundSoundWithError:(NSError **)error {
[[AVAudioSession sharedInstance] setActive:NO withOptions:AVAudioSessionSetActiveOptionNotifyOthersOnDeactivation error:error];
}
// , audio
+ (void)pauseBackgroundSoundWithError:(NSError **)error {
AVAudioSession *session = [AVAudioSession sharedInstance];
[session setCategory:AVAudioSessionCategoryPlayback withOptions: AVAudioSessionCategoryOptionAllowBluetooth error:error];
[session setActive:YES error:error];
}
+ (void)pauseBackgroundSoundWithCategoryRecord {
AVAudioSession *session = [AVAudioSession sharedInstance];
[session setCategory:AVAudioSessionCategoryRecord error:nil];
[session setActive:YES error:nil];
}
주:iOS 동 영상 이 백 스테이지 음악 재생 을 중단 하 는 처리 방법 에 관 한 이 글 은 여기까지 소개 되 었 습 니 다.더 많은 iOS 동 영상 이 백 스테이지 음악 재생 을 중단 하 는 내용 은 예전 의 글 을 검색 하거나 아래 의 관련 글 을 계속 찾 아 보 세 요.앞으로 도 많은 응원 부 탁 드 리 겠 습 니 다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Swift의 패스트 패스Objective-C를 대체하기 위해 만들어졌지만 Xcode는 Objective-C 런타임 라이브러리를 사용하기 때문에 Swift와 함께 C, C++ 및 Objective-C를 컴파일할 수 있습니다. Xcode는 S...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.