Внешний проигрыватель iOS swift 4 для YouTube Внешняя ссылка - PullRequest
0 голосов
/ 05 июня 2018

Интересно, почему он не может воспроизвести Внешнюю ссылку от "avplayer"?

Только выскакивает пустой AVplayerViewController, но ничего не играет.

import UIKit
import AVFoundation
import AVKit

class DetailTableViewController: UITableViewController {
    var article: Article!
    var player:AVPlayer?
    var playerItem:AVPlayerItem?

   .......
..........   
    override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        return 2
    }

    override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {

        func playUsingAVPlayer(url: URL) {
            player = AVPlayer(url: url)
            player?.play()
        }

        switch indexPath.row {

        case 0:
            let cell = tableView.dequeueReusableCell(withIdentifier: "imageCell", for: indexPath)

            cell.playVideo?.addControlEvent(.touchUpInside) {
                    let videoURL = URL(string: "http://www.youtube.com/playlist?list=PLWYak5Af5-DvboTzxQYeg7aKYA9UHYwSf")

                    let player = AVPlayer(url: videoURL!)
                    let avpvv = AVPlayerViewController()
                    avpvv.player = player
                    self.present(avpvv, animated: true){
                    avpvv.player!.play()
                    }
                }
                cell.playSoundButton.addControlEvent(.touchUpInside, {           
                    self.tableView.reloadData()
                    guard let url = URL(string: "http://mediasys.taipei.gov.tw/tcg/service/KMStorage/355/894E598B-8A9F-BAA8-206D-8DF52A8C5763/Panda_Voice01.mp3" ) 

                    else {
                        return
                    }              
                    if let myplayer = self.player{
                        if ((myplayer.rate != 0) && (myplayer.error == nil)) {
                            myplayer.pause()
                            playUsingAVPlayer(url:url )
                        }
                    }else{
                        playUsingAVPlayer(url:url )
                    }
                })
            }
            else {   print ("error to get cell back")    }   
            return cell
  }
........
}

ATS установлен для всех нагрузок.Если у вас есть идеи, почему это не работает, пожалуйста, дайте мне знать.

Заранее спасибо.

1 Ответ

0 голосов
/ 25 ноября 2018

AVPlayer не может воспроизводить ссылку на YouTube, поэтому она не загружается.Ссылки на YouTube на самом деле являются веб-страницами со встроенным проигрывателем, а не чем-то, что может быть прочитано AVKit (который ожидает медиа-файл или поток HLS).Как указывалось в другом ответе, если вы хотите показывать контент YouTube в некоторой родной форме, вам нужно будет использовать библиотеку Google (которая фактически просто отображает его в веб-представлении).https://developers.google.com/youtube/v3/guides/ios_youtube_helper Предоставит информацию о том, как использовать библиотеку, но невозможно использовать стандартные AVKit классы со ссылкой на YouTube.

...