作者:琳琳小朋友m | 来源:互联网 | 2023-01-17 16:13
我正在AVPlayerViewController
iPad-App上播放视频文件(H.264,AAC,MP4-Container).一切都在iOS 10中运行.而且在iOS 11中它正确播放视频.
但是在iOS 11中,当我开始向任何方向滑动时,它会立即使视频变黑并使音频静音.它还显示底部时间轴旁边的加载指示器.
它也忽略了allowsPictureInPicturePlayback
属性,因此它不会在iOS 11上显示PIP-Button.
这是我使用的代码:
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)
此功能可在视频结束时关闭视频播放器:
func onVideoCompleted(notification:Notification) {
self.avPlayerController?.player = nil
self.avPlayerController?.dismiss(animated: true, completion: nil)
}
当屏幕黑屏时,我在控制台中看到了这个:
AVOutputDeviceDiscoverySession (FigRouteDiscoverer)
>>>> -[AVFigRouteDiscovererOutputDeviceDiscoverySessionImpl
outputDeviceDiscoverySessionDidChangeDiscoveryMode:]: Setting device discovery
mode to DiscoveryMode_Presence (client: MyAppName)
fl034..
6
好吧,我发现了错误:要在按"完成"时关闭Airplay视频播放,我使用了以下代码:
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
if avPlayerController?.isBeingDismissed ?? false {
avPlayerController?.player = nil
}
}
但是在iOS 11中,Apple添加了一项功能,通过轻扫手势关闭视频播放器.所以当我滑动时,viewWillAppear
函数会被调用.将此代码置于viewDidAppear
此内并修复此问题并保留AirPlay-Fix.
1> fl034..:
好吧,我发现了错误:要在按"完成"时关闭Airplay视频播放,我使用了以下代码:
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
if avPlayerController?.isBeingDismissed ?? false {
avPlayerController?.player = nil
}
}
但是在iOS 11中,Apple添加了一项功能,通过轻扫手势关闭视频播放器.所以当我滑动时,viewWillAppear
函数会被调用.将此代码置于viewDidAppear
此内并修复此问题并保留AirPlay-Fix.