我正在尝试从YouTube网址播放视频文件。我已经创建了AVPlayer并将URL链接到播放器。当我单击按钮时,播放器打开,但是视频播放器仅显示文件正在连续加载。我已经更改了应用传输安全设置-> plist上的“允许任意加载”。
此处提供代码:
UserData
编辑:我也尝试过使用URL共享视频; https://youtu.be/xLCn88bfW1o。
答案 0 :(得分:2)
您使用的网址不是视频的网址,而是嵌入式视频的网页的网址。有一些工具可以帮助您获取视频文件的实际网址。
例如: YoutubeDirectLinkExtractor
YoutubeDirectLinkExtractor允许您获得指向YouTube视频的直接链接,可以轻松地与AVPlayer一起使用。它使用类型安全性和可选属性来确保无论如何提取链接时都不会崩溃。但是,还有一些流行的替代方法,它们使用更直接,更冒险的方法:
在AVPlayer中使用提取的视频链接:
let y = YoutubeDirectLinkExtractor()
y.extractInfo(for: .urlString("https://www.youtube.com/watch?v=HsQvAnCGxzY"), success: { info in
let player = AVPlayer(url: URL(string: info.highestQualityPlayableLink!)!)
let playerViewController = AVPlayerViewController()
playerViewController.player = player
self.present(playerViewController, animated: true) {
playerViewController.player!.play()
}
}) { error in
print(error)
}
答案 1 :(得分:0)
您需要将视频文件的直接URL传递到AVPlayer
(不是Youtube网站URL)
例如:
let path = URL(string: "https://www.sample-videos.com/video/mp4/720/big_buck_bunny_720p_1mb.mp4")