다른 앱이 배경에서 오디오를 재생할 수있는 iPhone 응용 프로그램을 개발했습니다. 이를 위해,이처럼 내 오디오 세션을 초기화 : 내 응용 프로그램의 어느 시점에서AVAudioPlayer가 일시 중지 된 후 백그라운드 오디오 다시 시작
[[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlayback error:nil];
내가 AVAudioPlayer와 CoreData에 저장된 일부 파일을 재생하는 오디오 플레이어를 제공합니다. 사용자가 재생 버튼을 누르면 배경 오디오가 일시 중지되어야합니다. 플레이어가 끝났거나 일시 중지되면 배경 오디오가 재생을 다시 시작해야합니다. 플레이어가 마법처럼
-(void)audioPlayerDidFinishPlaying:(AVAudioPlayer *)player successfully:(BOOL)flag
{
[[AVAudioSession sharedInstance] setActive:NO withFlags:AVAudioSessionSetActiveFlags_NotifyOthersOnDeactivation error:nil];
}
작품 재생 완료 후
것은 다시 시작하는 동안, 나는 일시 정지 후 이력서와 박히. 이 버튼의 IBAction를
-(IBAction)pausePlayer
{
if (self.player.isPlaying) {
[self.player pause];
[[AVAudioSession sharedInstance] setActive:NO withFlags:AVAudioSessionSetActiveFlags_NotifyOthersOnDeactivation error:nil];
}
}
내에서 동일한 방식으로 작동해야하지만 난 항상 같은 오류가 발생합니다 :
Unable to deactivate audio session. Error: Error Domain=NSOSStatusErrorDomain Code=560030580 "The operation couldn’t be completed. (OSStatus error 560030580.)"
가이 경우에 AudioSession을 비활성화하는 것은 불가능 왜 어떤 제안?
오디오 프레임 오프셋을 -1로 설정하거나 플레이어의 인스턴스를 완전히 중지하려고 시도 했습니까? – dklt
560030580은 16 진수로 변환되어 ASCII로 해석됩니다. 'AudioSession.h'에서 이것을 보면, 그 에러는'kAudioSessionNotActiveError'입니다. –
@SteveMadsen 당신은 놀라운 16 진수 속살 거리는 사람입니다. – Warpling