2016-12-12 2 views
0

동영상을 재생하는 플레이어로 앱을 만들었으므로 didBecomeActive 및 willResignActive 메소드에서 [player pause] 및 [player play]가 있습니다. 대부분의 시간은 정상적으로 작동하지만 앱을 열어 홈 버튼을 누른 다음 해당 프로세스를 다시 반복하면 재생 메서드가 호출되는 것을 볼 수 있지만 비디오는 재생되지 않습니다.iOS : AVPlayer가 때때로 재생되지 않습니다.

어떤 일이 벌어지고 있는지 알 수있는 사람이 있습니까?

+0

사람들이 당신을 도울 수 있도록 일부 코드 (위임자와 메서드)를 공유합니다. –

답변

1

앱이 전경이 아닌 여러 주에있을 수 있습니다. 재생하기 전에 아직 player이 있는지 확인하고, 여전히 player.currentItem이고, 상태가 AVPlayerStatusReadyToPlay 인 지 확인합니다.

이러한 조건 중 하나라도 충족되지 않으면 플레이어와 항목을 처음 만들 때 사용한 코드를 사용하여 다시 초기화해야합니다.

이것은 player 속성에 대한 지연 초기화자를위한 좋은 후보입니다.

+0

마지막으로 1 초 이내에 비디오 재생이 가능합니다. 홈 버튼을 누른 다음 다시 열면 문제가 발생합니다. 플레이어에 currentItem이 있고 그 속도는 1.0으로 설정되어 있고 ReadyToPlay이지만 Play 메서드는 아무 작업도 수행하지 않습니다. 해결 방법은 플레이어 항목을 삭제하고 사용자가 동영상의 마지막 두 번째 시간 내에 홈 버튼을 누르면 코드를 다시 작성하는 코드를 추가 한 것입니다. ( – mcocaro

+0

일어날 수있는 일은 플레이어 상태가 앱이 활성 상태를 변경하고 있습니다. 앱을 구현합니까? 사임합니까? https://developer.apple.com/reference/uikit/uiapplicationdelegate/1622950-applicationwillresignactive 재생을 일시 중지하거나 중지해야합니다. – danh

+0

예, 사임 상태 플레이어를 일시 중지하고 상태가 ReadyToPlay인지 확인하십시오. – mcocaro

관련 문제