헤더를 보면 iOS6에서 AVAudioSessionDelegate가 더 이상 사용되지 않는 것 같습니다.
iOS6 대신 AVAudioSessionInterruptionNotification
을 사용하십시오.
업데이트 : 작동하지 않았습니다. 프레임 워크에 버그가 있다고 생각합니다.
예, 저의 경험으로 beginInterruption 또는 새로 문서화 된 AVAudioSessionInterruptionNotification이 제대로 작동합니다. 내가해야 할 일은 로컬 플래그를 사용하여 플레이어의 상태를 추적 한 다음 endInterruption:withFlags:
메서드를 처리하여 중단으로부터 복구를 추적하는 것입니다.
iOS 6에서는 중단으로 인한 재개로 인해 오디오 플레이어가 올바른 위치에 유지되므로 AVAudioPlayer의 마지막 재생 시간을 저장할 필요가 없어 단순히 재생해야했습니다.
다음은 내가 생각해 낸 해결책입니다. AVPlayer가 너무 오래 머무르면 iOS 6이 미디어 리셋으로 오디오를 죽이는 것처럼 보입니다. 무슨 일이 일어나고, AVPlayer가 재생되지만 소리가 나지 않습니다. AVPlayer의 속도는 1이지만 소리가 전혀 들리지 않습니다. 상황에 고통을 추가하려면 AVAudioSession setActive 나 문제가 있음을 나타내는 AVPlayer 자체에 오류가 없습니다.
appWillResignActive에 의존 할 수 없다는 사실에 덧붙여서, 원격 제어 동작에 전혀 의존하고있는 경우 앱이 백그라운드에 이미있을 수 있습니다.
구현 한 마지막 해결책은 AVPlayer에주기적인 관찰자를 추가하고 마지막으로 알려진 시간을 기록하는 것입니다. 내가 컨트롤을 다시 받았다는 이벤트를 받으면 새로운 AVPlayer를 만들고 AVPlayerItem으로로드 한 다음 적절한 시간에 seekToTime을로드합니다.
이것은 상당히 까다로운 해결 방법이지만, 적어도 작동하고 정기적 인 충돌이 발생하지 않도록합니다.
내가 같은 상황, 앤드류 타격있어가, 그것을 해결하기 위해 당신이 할 수 있었다? – Ethan
iOS 5.x에서 문제가 발생합니까? – farski
iOS 6에서만 똑같은 것을 보았습니다. 업그레이드 만되었지만 작동하지 않습니다. 네가 해결했다면 알려줘. –