2017-05-17 1 views
0

광산의 iOS 앱에는 URL 기반 오디오 애셋으로 기본 AVPlayer을 만드는 맞춤형 오디오 플레이어 클래스가 있습니다. 모두 매우 바닐라입니다. URL을 기준으로 AVPlayerItem을로드하고 비동기 적으로 애셋 데이터를로드 한 다음이를 사용하여 AVPlayer 인스턴스를 만듭니다.AVPlayer는 오류없이 오디오를 재생하지 않습니다.

모든 것이 잘 작동하지만 AVPlayer가 오디오 자산을로드하고 올바르게 구문 분석하지만 오디오 재생을 거부하는 경우를 발견했습니다.

이것은 앱을 시작하기 전에 몇 가지 게임을 시작했을 때 발생합니다. 예 : Minecraft 및 기념물 계곡입니다. 이 재현을위한 확실한 방법은 없습니다 (때로 Minecraft를 시작하면이 버그가 나타나기도하고 때로는 나타나지 않음).하지만 오디오를 사용하는 몇 가지 게임을 시작하면 버그가 결국 나타납니다.

앱의 현재 상태를 디버그하면 AVPlayer에 오류가 없습니다. 상태는 재생할 준비가되어 있습니다. AVPlayerItem도 마찬가지입니다. 앱에서 오디오를 재생할 수있는 방법이 없습니다 ...

... Spotify를 시작하고 노래를 재생할 경우를 제외하고는 .... 이렇게하면 존재할 수있는 오디오 잠금 장치가 수정되고 플레이어가 재생되지 않게됩니다. Spotify를 종료하고 앱을 열면 오디오 플레이어에서 오디오를 재생할 수 있습니다.

어떤 아이디어가 발생할 수 있습니까? 나는 아이디어가 없다.

답변

0

답이 맞는지는 모르겠지만 AVSession을 오디오에 설정해야 할 수도 있습니다. AVSession info 그들은 오디오가 다른 사람들보다 재생되어야하는지, 전화가 올 경우 또는 배경 등으로 갈 때 멈추어야하는지 등을 전화기에 알려줍니다.

이 응용 프로그램 중 일부는 오디오 세션을 변경하고 있습니다. 너의 것을 정확하게 지정하지 마라. 이것은 나를 위해 일한 범주 옵션이지만 AVPlayer를 다른 사람,이 도움이 있는지 확인하기 위해 시도를 가지고

do { 
    try AVAudioSession.sharedInstance().setCategory(AVAudioSessionCategoryPlayback, with: AVAudioSessionCategoryOptions.interruptSpokenAudioAndMixWithOthers) 
    } 
catch { 
// report for an error } 

:

나는 광산이 코드를 사용했다. 대답하고 링크, 좋은 조언을

This are the different Category Options for AVSessions

+0

감사합니다! 그러나, 나는 이미 이런 일을합니다. :/ –

+0

솔직히 더 많은 도움이되지 못해 죄송합니다. 나는 AVPlayer 이상한 행동을 많이하고 있습니다. 내가 무엇인가를 찾거나 생각을하면 당신에게 알려줄 것입니다! 행운을 빕니다 :) – baldemora

+0

고마워, 정말 고맙게 생각합니다! :) –

관련 문제