2012-04-26 3 views
2

저는 인터넷에서 오디오 파일을 재생하는 AVQueuePlayer가 있습니다. 그것은 백그라운드에서 애플 리케이션과 함께 수행 할 수있게하고 괜찮 았어 (백그라운드에서 재생하고 비동기 적으로 백그라운드에서 새 파일을 가져옵니다).백그라운드에서 AVQueuePlayer를 시작하십시오.

앱을 배경으로 이동하기 전에 AVQueuePlayer가 재생을 시작하도록 허용하면 모두 문제가 없습니다. 내 앱을 시작하려면 실제로 올바른 파일을 재생하기 전에 몇 가지 서비스와 이야기해야합니다.

재생을 시작하기 전에 앱을 배경으로 이동하면 AVQueuePlayer가 재생되지 않습니다.

백그라운드에서 서비스와 대화 할 수 있으려면 먼저 beginBackgroundTaskWithExpirationHandler를 통해 백그라운드 작업 권한을 요청해야합니다.

로그보기 모든 서비스가 정상적으로 완료되어 (백그라운드 작업 권한이 작동 함) AVQueuePlayer가 여러 AVPlayerItem으로 올바르게 초기화되었지만 재생이 시작되지 않음을 알 수 있습니다. AVQueuePlayer.currentItem.status도 AVPlayerStatusReadyToPlay에 도달하지 않습니다.

AVQueuePlayer와의 모든 상호 작용이 메인 스레드에서 발생했는지 확인했습니다.

내 설정과 배경 작업 권한에 관계없이 앱이 배경에 있으면 AVQueuePlayer가 시작되지 않습니다.

이전에 오디오 대기열 서비스와 비슷한 작업을 수행 할 수 있었지만 AVQueuePlayer 및이 간단한 API로 충분할 것으로 기대했지만 앞으로는 Audio Queue Services 및 공동으로 다시 돌아 가야 할 것으로 보입니다.

답변

2

앱이 여전히 포 그라운드 상태에서 오디오 대기열을 시작해야합니다. 필요하면 침묵을하십시오. 앱이 백그라운드로 들어갈 때 오디오를 생성하지 않으면 오디오 세션이 삭제되어 기본적으로 새로운 포 그라운드 앱에 제공되는 것 같습니다. 따라서 배경으로 들어가는 앱에는 아무 것도 재생할 세션이 없습니다.

+0

Works! 고맙습니다. – atlithorn