Używam AVPlayerViewController
do odtwarzania pliku wideo (H.264, AAC, MP4-Container) w aplikacji na iPada. Wszystko działa w iOS 10. A także w iOS 11 poprawnie odtwarza wideo.Czarny ekran AVPlayerViewController podczas przesuwania w systemie iOS 11
Ale w iOS 11, kiedy zaczynam przesuwać w dowolnym kierunku, natychmiast odświeża wideo i wycisza dźwięk. Pokazuje również wskaźnik ładowania obok osi czasu na dole.
także ignoruje właściwość allowsPictureInPicturePlayback
, więc nie pokazać PIP-przycisk na iOS 11.
Jest to kod używam:
avPlayerController = AVPlayerViewController()
avPlayerController?.showsPlaybackControls = true
avPlayerController?.allowsPictureInPicturePlayback = true
avPlayerController?.player = AVPlayer(url: videoUrl as URL)
avPlayerController?.player?.play()
self.present(self.avPlayerController!, animated: true, completion: nil)
avPlayerController?.player?.actionAtItemEnd = AVPlayerActionAtItemEnd.none
NotificationCenter.default.addObserver(self, selector: #selector(onVideoCompleted), name: NSNotification.Name.AVPlayerItemDidPlayToEndTime, object: self.avPlayerController!.player?.currentItem)
I ta funkcja, aby zamknąć wideo gracz na końcu filmu:
func onVideoCompleted(notification:Notification) {
self.avPlayerController?.player = nil
self.avPlayerController?.dismiss(animated: true, completion: nil)
}
Kiedy czarni? na ekran uzyskać to w konsoli:
AVOutputDeviceDiscoverySession (FigRouteDiscoverer)
>>>> -[AVFigRouteDiscovererOutputDeviceDiscoverySessionImpl
outputDeviceDiscoverySessionDidChangeDiscoveryMode:]: Setting device discovery
mode to DiscoveryMode_Presence (client: MyAppName)
Mam do czynienia z podobnym problemem, który występuje tylko wtedy, gdy przełączam się z MPMoviePlayerViewController na AVPlayerViewController. otrzymuję następujący komunikat o błędzie w konsoli po naciśnięcie przycisku Gotowe na MPMoviePlayer: 'Ustawianie trybu wykrywania urządzenie do DiscoveryMode_None (klient: appName) [Odtwarzanie] ❗️Failed kolejce każdy items.' po tym, nawet gdy Próbuję powyższego rozwiązania, ustawiając odtwarzacz na zero, wideo AVPLayer nie może być odtwarzane i jest zamrożone. Zdarza się to tylko wtedy, gdy urządzenie jest podłączone za pomocą AirPlay. –
Dzięki za to. Szkoda, że nie wiedziałem, że iOS 11 dodał to. Podążałem za próbką wydaną przez Apple, IRT do odtwarzania wideo, i zabijają odtwarzanie wideo w metodzie prezentacji "viewWillAppear". –