我必须支持一个现成的项目。 任务是实现 AirPlay 按钮以将视频从应用程序广播到外部电视。 视频从服务器下载并存储在设备上。
默认情况下,翻译是通过以下代码实现的:
player?.allowsExternalPlayback = true
player?.usesExternalPlaybackWhileExternalScreenIsActive = true
if #available(iOS 11.0, *) {
let routerPickerView = AVRoutePickerView(frame: CGRect(x: 100, y: 30, width: 20, height: 20))
self.addSubview(routerPickerView)
routerPickerView.tintColor = .red
routerPickerView.activeTintColor = .green
if #available(iOS 13.0, *) {
routerPickerView.prioritizesVideoDevices = true
}
} else {
// Fallback on earlier versions
}
这是我们发现的: 如果你这样做:(从链接中获取视频)
let url = URL(string: "https://content.jwplatform.com/manifests/vM7nH0Kl.m3u8")!
player = AVPlayer(url: url2)
电视节目如期而至, 如果是这样:(视频在设备本地托管)
let urlPath = Bundle.main.path(forResource: "IMG_0781", ofType: "MOV")!
let urlPath = Bundle.main.path(forResource: "MOV09057", ofType: "mpg")!
let urlPath = Bundle.main.path(forResource: " 1. Intro (0609) ", ofType: "mp4")!
let url2 = URL(fileURLWithPath: urlPath)
player = AVPlayer(url: url2)
那么电视就不会显示任何指定的 urlPaths。 有什么想法吗?
项目here