6

AVPlayer에 원격 미디어 URL (HLS 스트림)이로드되어 있고 플레이어가 재생 준비가되지 않았지만 오류가 표시되지 않는 경우가 있습니다. 다른 곳에서 오류가 있거나 AVPlayerItem이 아직로드되어 있는지 확인하는 방법이 있습니까?AVPlayer가 재생할 준비가되지 않았습니다.

비디오가로드되지 않을 때 절대로 호출되지 않는 속도, 상태 및 재생에 대한 KVO이 있습니다. 플레이어, 플레이어 항목 및 재생이 계속 될 가능성이 있는지 여부를 확인하기위한 버튼을 추가했습니다. 플레이어가 붙어있을 때 nil, nil 및 false를보고합니다. 플레이어가 멈추거나 (비디오 게임을 전혀로드하지 않는 경우) 무작위로 보이지만 특정 비디오에서는 발생하지 않습니다.

이 문제를 디버그하기 위해 수행 할 수있는 다른 단계는 무엇입니까? 오류 또는 상태를 확인할 다른 장소가 있습니까?

더 많은 정보는 확인 : 재생 버퍼가 비어 : 사실 재생 버퍼가 가득 : 거짓

+0

실제로 플레이어에게 게임을 부탁합니까? – matt

+0

그래, 나는 이것이 행운과 함께 일어나고 있는지 확인하기 위해 추가 버튼을 추가했다. 같은 플레이어가 다른 경우에 작동합니다. 이상합니다. 우리는 플레이어 아이템을 플레이어로 재사용하고 관찰자가 새 아이템에 추가되지만 버튼을 사용하여 상태를 기록하면 KVO가 올바르게 작동하고 있음을 알 수 있습니다. –

+0

코드를 게시 할 수 있습니까? 플레이어 항목을 교환하고 플레이어를 다시 사용하려고 시도 할 때만 발생합니까? – Msencenb

답변

1

이 솔루션은 플레이어를 다시 사용하기 전에, player.replaceCurrentItemWithPlayerItem(nil)을 사용하여 AVPlayer를 할당 해제했습니다. 현재 항목을 대체하는 몇 가지 이유로 때때로 문제가 발생했습니다. 우리는 또한 우리의 비디오가 한꺼번에 로딩되는 것이 아니라 순서대로 로딩되었는지 확인했습니다. 그게 우리 문제를 해결 한 것 같았습니다.

1

당신의 앱 내에서 원격 서버에서 URL을로드 할 수 있도록 당신이 당신의 Info.plist

이를 추가해야 내가 입력으로 see the docs

<key>NSAppTransportSecurity</key> 
<dict> 
    <key>NSExceptionDomains</key> 
    <dict> 
     <key>mydomain.com</key> 
     <dict> 
      <key>NSIncludesSubdomains</key> 
      <true/> 
      <key>NSExceptionAllowsInsecureHTTPLoads</key> 
      <true/> 
      <key>NSExceptionRequiresForwardSecrecy</key> 
      <true/> 
      <key>NSExceptionMinimumTLSVersion</key> 
      <string>TLSv1.2</string> 
      <key>NSThirdPartyExceptionAllowsInsecureHTTPLoads</key> 
      <false/> 
      <key>NSThirdPartyExceptionRequiresForwardSecrecy</key> 
      <true/> 
      <key>NSThirdPartyExceptionMinimumTLSVersion</key> 
      <string>TLSv1.2</string> 
      <key>NSRequiresCertificateTransparency</key> 
      <false/> 
     </dict> 
    </dict> 
</dict> 

정확하게 라인을 추가하지 마십시오. 필요에 맞게 구성하십시오. iOS 용 Apple의 기본 구성은 http이 아니라 https 연결을 기대하는 것입니다. http을 허용하도록 구성해야합니다.

관련 문제