tvOS で YouTube 動画を再生する方法を尋ねるこの質問と同様に、作成中のアプリで Vimeo 動画を再生したいと思います。ただし、ここで説明したように、通常の Web ビュー (これは私が iOS で行う方法です) はありません。
動画ページの URL は知っているが生の .mp4 ファイルの URL は知らないと仮定して、tvOS で Vimeo ビデオを再生するにはどうすればよいですか?
tvOS で YouTube 動画を再生する方法を尋ねるこの質問と同様に、作成中のアプリで Vimeo 動画を再生したいと思います。ただし、ここで説明したように、通常の Web ビュー (これは私が iOS で行う方法です) はありません。
動画ページの URL は知っているが生の .mp4 ファイルの URL は知らないと仮定して、tvOS で Vimeo ビデオを再生するにはどうすればよいですか?
どうやら、tvOS SDK には WebView がないため、Vimeo ビデオを WebView で再生する方法はありません。私たちが持っている唯一のオプションは AVPlayer ですが、これにはビデオへの直接 URL が必要であり、Vimeo は直接ビデオ URL を無料で提供してくれません。現時点で唯一可能な方法は、Vimeo の PRO メンバーシップ (現時点で年間 199 ドル) を購入し、Vimeo の API を介して直接のビデオ URL を取得することです。
編集: nickv2002 が指摘したように、このアプローチでは、自分のビデオへの直接 URL のみが提供されます。つまり、Vimeo PRO を使用しても、Vimeo でビデオを撮影して直接 URL を取得することはできません。
このポッドを使用して、tvOS は vimeo コンテンツを再生できます, インストール
ポッド「YTVimeoExtractor」
と
import YTVimeoExtractor
そして、この機能を使用してビデオを再生します
func playVimeoVideo(videoId: String)
{
YTVimeoExtractor.shared().fetchVideo(withVimeoURL: "https://vimeo.com/video/\(videoId)", withReferer: nil) { (video:YTVimeoVideo?, error:Error?) in
if let streamUrls = video?.streamURLs
{
var streamURL: String?
var streams : [String:String] = [:]
for (key,value) in streamUrls {
streams["\(key)"] = "\(value)"
print("\(key) || \(value)")
}
if let large = streams["720"]
{
streamURL = large
}
else if let high = streams["480"]
{
streamURL = high
}
else if let medium = streams["360"]
{
streamURL = medium
}
else if let low = streams["270"]
{
streamURL = low
}
if let url = streamURL
{
let videoURL = NSURL(string: url)
let player = AVPlayer(url: videoURL! as URL)
let playerViewController = AVPlayerViewController()
playerViewController.player = player
self.present(playerViewController, animated: true) {
playerViewController.player!.play()
}
}
}
}
}