Использование YTPlayerView для воспроизведения встроенного видео YouTube в iOS не удалось с ошибкой ограничения

ios swift youtube youtube-api ytplayerview

6623 просмотра

4 ответа

48 Репутация автора

Я хочу воспроизвести встроенное видео YouTube в приложении для iOS с помощью YTPlayerView, предоставленного по адресу https://developers.google.com/youtube/v3/guides/ios_youtube_helper

Когда я пытался воспроизвести это видео с ID = "Ri7-vnrJD3k" ( https://www.youtube.com/embed/Ri7-vnrJD3k ), я получил сообщение об ошибке «Это видео содержит материалы VEVO. воспроизведение на определенных сайтах. Смотреть на YouTube ". Обратите внимание, что при воспроизведении некоторых других видео такой проблемы не возникает.

Есть ли способ решить вышеуказанную проблему?

Я мог бы использовать iframe для успешного воспроизведения встроенного видео, используя приведенный ниже пример быстрого кода. Но я не знаю, как отследить, когда пользователь начинает воспроизводить видео и когда видео завершается, так как я хочу выполнить другие настраиваемые действия на основе этой информации. Если вы знаете какое-либо решение, не могли бы вы дать мне знать?

let frame = CGRectMake(0,0, self.view.frame.size.width, 240)
playerView = UIWebView(frame: frame)
playerView.allowsInlineMediaPlayback = true

var embedHTML = NSString(format: "<html><head><style type=\"text/css\"> body { background-color: transparent; color: white; margin:0; width:100%%; height:100%% } </style> </head><body style=\"margin:0\"> <iframe width=100%% height=100%% src=\"%@?feature=player_detailpage&playsinline=1\" frameborder=\"0\" ></iframe> </body></html>", self.url.text)

self.view.addSubview(playerView)
playerView.loadHTMLString(embedHTML as String, baseURL: NSURL(string: "http://www.youtube.com"))
Автор: Kevin Su Источник Размещён: 22.06.2015 04:27

Ответы (4)


1 плюс

327 Репутация автора

YTPlayerView Inturn использует iframes для воспроизведения видео на YouTube. Вы не можете использовать iframe при воспроизведении защищенных авторскими правами видео на YouTube. Вы можете использовать uiwebView, чтобы воспроизвести его в качестве альтернативы.

Автор: Akshay Karanth Размещён: 22.06.2015 04:31

23 плюса

34665 Репутация автора

Решение

Установив originсвойство в моем, playerVarsя смог воспроизвести встроенное видео.

let playerVars = [
                     "playsinline" : 1,
                     "showinfo" : 0,
                     "rel" : 0,
                     "modestbranding" : 1,
                     "controls" : 1,
                     "origin" : "https://www.example.com"
                 ]

Тогда звоните, loadWithVideoId::как обычно.

YouTube

Автор: JAL Размещён: 22.06.2015 10:01

6 плюса

398 Репутация автора

NSDictionary *playerVars = @{
                             @"origin" : @"http://www.youtube.com",
                             };
[self.playerView loadWithVideoId:@"videoId" playerVars:playerVars];`

Эта версия Objective-C работает для меня.

Автор: Mayuri R Talaviya Размещён: 03.02.2017 12:51

0 плюса

739 Репутация автора

Swift 5.0

@IBOutlet weak var videoPlayer: YTPlayerView!

 self.videoPlayer.load(withVideoId: "M7lc1UVf-VE", playerVars: ["origin": "http://www.youtube.com"])
Автор: Juan E. Londoño T. Размещён: 08.08.2019 04:21
Вопросы из категории :
32x32