2017-01-04 5 views
1

Я пытаюсь воспроизвести видеоролик instagram из общей ссылки, я использовал следующий код, но он не работает, есть ли какой-либо дополнительный шаг? Любой API, который получит URL-адрес исходного видео, например графический API на Facebook?Как играть в видеоролик с помощью AVPlayer

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() 
    } 

Это открывает плеер, но не играет видео Любая помощь приветствуется.

+1

выше URL-адрес не является URL-адресом для видео, это URL-адрес веб-страницы, попробуйте разобрать URL-адрес видео из данных веб-страницы. – NANNAV

+0

Да именно то, что возвращает instagram как ссылка –

ответ

4

Вы передаете URL-адрес веб-страницы AVPlayer, это не сработает, вы должны использовать URL-адрес самого видео.

Используя библиотеку разбора HTML Fuzi, вы можете получить URL-адрес видео с веб-страницы.

Трюк заключается в том, чтобы найти URL-адрес в HTML.

Для 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) 
    } 
} 

Это получает URL со страницы, «http://scontent-cdg2-1.cdninstagram.com/t50.2886-16/15872432_382094838793088_926533688240373760_n.mp4», и вы можете использовать его для загрузки или потокового видео, как вы обычно делаете.

+0

спасибо, что выглядит идеально, я попробую –

+0

Я хочу, чтобы этот код был объективным C, можете ли вы, пожалуйста, помочь мне –

Смежные вопросы