如何使用 AVPlayer 播放 instagram 视频
How to play instagram video using AVPlayer
我正在尝试播放来自共享 link 的 instagram 视频,我使用了以下代码但它没有流式传输,是否需要任何额外的步骤?任何 API 将获得源视频 URL 就像 Facebook 上的图 API 一样?
URL是这样的https://instagram.com/p/BOzamYMA-vb/
let videoURL = NSURL(string: "https://instagram.com/p/BOzamYMA-vb/")
let player = AVPlayer(url: videoURL! as URL)
let playerViewController = AVPlayerViewController()
playerViewController.player = player
self.present(playerViewController, animated: true) {
playerViewController.player!.play()
}
这会打开播放器但不会播放视频
感谢任何帮助。
您正在将网页 URL 提供给 AVPlayer,这是行不通的,您必须对视频本身使用 URL。
使用 Fuzi HTML 解析库可以从网页中获取视频 URL。
诀窍是在 HTML 中找到 URL。
对于 instagram,我们可以用这个 xpath 找到它:"//meta[@property='og:video']/@content"
.
示例:
import Fuzi
let link = "https://instagram.com/p/BOzamYMA-vb/"
if let pageURL = URL(string: link),
let data = try? Data(contentsOf: pageURL),
let doc = try? HTMLDocument(data: data)
{
let items = doc.xpath("//meta[@property='og:video']/@content")
if let item = items.first,
let url = URL(string: item.stringValue)
{
print(url)
}
}
这会从页面“http://scontent-cdg2-1.cdninstagram.com/t50.2886-16/15872432_382094838793088_926533688240373760_n.mp4”获取 URL,您可以像往常一样使用它来下载或流式传输视频。
我正在尝试播放来自共享 link 的 instagram 视频,我使用了以下代码但它没有流式传输,是否需要任何额外的步骤?任何 API 将获得源视频 URL 就像 Facebook 上的图 API 一样?
URL是这样的https://instagram.com/p/BOzamYMA-vb/
let videoURL = NSURL(string: "https://instagram.com/p/BOzamYMA-vb/")
let player = AVPlayer(url: videoURL! as URL)
let playerViewController = AVPlayerViewController()
playerViewController.player = player
self.present(playerViewController, animated: true) {
playerViewController.player!.play()
}
这会打开播放器但不会播放视频 感谢任何帮助。
您正在将网页 URL 提供给 AVPlayer,这是行不通的,您必须对视频本身使用 URL。
使用 Fuzi HTML 解析库可以从网页中获取视频 URL。
诀窍是在 HTML 中找到 URL。
对于 instagram,我们可以用这个 xpath 找到它:"//meta[@property='og:video']/@content"
.
示例:
import Fuzi
let link = "https://instagram.com/p/BOzamYMA-vb/"
if let pageURL = URL(string: link),
let data = try? Data(contentsOf: pageURL),
let doc = try? HTMLDocument(data: data)
{
let items = doc.xpath("//meta[@property='og:video']/@content")
if let item = items.first,
let url = URL(string: item.stringValue)
{
print(url)
}
}
这会从页面“http://scontent-cdg2-1.cdninstagram.com/t50.2886-16/15872432_382094838793088_926533688240373760_n.mp4”获取 URL,您可以像往常一样使用它来下载或流式传输视频。