9

스트리밍 뮤직 플레이어를 만들었습니다. 포 그라운드에서 잘 작동합니다. 배경 iOS4에서는 다음 노래가 자동으로 재생되지 않습니다. (원격 제어가 작동 함) 이유는 AudioQueueStart return -12985입니다.AudioQueueStart fail -12985

이미 오디오 세션을 확인합니다. 괜찮아. 음악을 재생하기 시작할 때 AudioQueueStart을 사용합니다. AudioQueueStart을 어떻게 삭제할 수 있습니까? AudioQueueStart이 주제 실패에 대해

- (void)play 
{ 
    [self setupAudioQueueBuffers]; // calcluate the size to use for each audio queue buffer, and calculate the // number of packets to read into each buffer 
    OSStatus status = AudioQueueStart(self.queueObject, NULL); 
} 

나는 웹에서 답을 읽어 보시기 바랍니다.

먼저 오디오 세션이 먼저 활성화되어 있는지 확인해야합니다. 내 경우 , 나는 이전에 새 노래를 시작하기 전에 노래 변화 사이에 비활성 할 수있는 세션을 설정했다 : AudioSessionSetActive(false);

나는이 AudioQueueStart이 배경에서 잘 작동 제거되면.

+0

업데이트가 실제 솔루션 인 경우 귀하의 질문에 대한 답변으로 게시 할 수 있습니까 (완전성을 위해)? –

+0

이것을 알아 냈습니까? 나는 받아 들여지는 대답이 없기 때문에 묻고있다. –

답변

2

나는 또한 일주일 전에 그런 문제에 직면했다. 나는 해결책을 찾기 위해 이틀을 보냈고 그것을 발견했다. 이 링크가 도움이 될 수 있습니다 (공식 답변) : http://developer.apple.com/library/ios/#qa/qa1668/_index.html

applicationDidEnterBackground 작업 처리기에서 세션을 활성화해야합니다. 이제 내 응용 프로그램은 백그라운드에서 소리를 재생할 수 있습니다.

1

this을 참조하십시오.

당신은 아마 다음을 포함합니다 :

[[UIApplication sharedApplication] beginReceivingRemoteControlEvents];

바닥을 향해 그 라인이 얼마나 중요한의 반복이 있습니다. 세 가지 주요 오디오 오디오 가이드 (AVFoundation, AudioSession 또는 AudioQueue)에 언급되어 있지 않으므로 쉽게 놓칠 수 있습니다.

3

내 경험에 의하면, 앱에서 재생을 시작하려고하면 다른 앱에 이미 오디오 세션이 활성화되어 있기 때문에 -12985 메시지가 표시됩니다. 옵션은 1) 사용자에게 다른 앱을 종료하도록 지시하거나 2) 믹스 모드를 설정합니다 (kAudioSessionProperty_OverrideCategoryMixWithOthers 참조).

믹스 모드의 단점은 잠금 화면 아트 나 리모콘을 사용하는 경우 믹스 모드 설정으로 작동하지 않는다는 것입니다.

0

동일한 문제가 있습니다. AudioSessionInterruptionListener를 등록하고, 전화 통화가 끝나면 오디오를 일시 중지하고, 통화 종료 후에 다시 시작합니다. AudioQueueStart를 호출하여 재개하려고하면 -12985 오류 코드가 발생합니다.내 솔루션은 0.02s 후에 AudioQueueStart를 호출하려고합니다. 이유를 모르겠습니다.

0

iOS7에서 AudioQueueStart는 '! int'('tni!')를 반환했지만 아무도 문서 나 헤더에 문서화되어 있지 않다는 사실에 놀라지 않을 것입니다. 그래도 같은 문제 였고 동일한 문제 (배경 작업 처리기에서 오디오 세션을 활성화로 설정)가 저에게 효과적이었습니다.

관련 문제