0

AVPlayer でビデオを再生しようとすると、ビデオがしばらく読み込まれ (プレーヤーの上部に読み込み記号が表示されます)、突然停止し、クロスオーバー付きの再生アイコンが表示されます。何が悪いのかわからない?ビデオ情報は取得できますが、ビデオを再生できません。私がやったことをお見せします。誰でも私の質問に答えることができますか、助けていただければ幸いです。

import UIKit
import AVKit
import AVFoundation

class ViewController: UIViewController {

var playerVC : AVPlayerViewController!
var playerItem : AVPlayerItem!
var player : AVPlayer!
var playerLayer: AVPlayerLayer!


@IBOutlet weak var videoURL: UITextField!
@IBOutlet weak var videoTitle: UILabel!
@IBAction func playVideo(sender: AnyObject) {

    YTVimeoExtractor.sharedExtractor().fetchVideoWithVimeoURL(self.videoURL.text!, withReferer: nil, completionHandler: {(video, error) -> Void in

        if video != nil {


            // https://vimeo.com/165891648
            self.videoTitle.text = video?.title

            print("hello: \(self.videoTitle.text)")

            let url = NSURL(string: self.videoURL.text!)


//                let url = NSURL.init(fileURLWithPath: self.videoURL.text!)

            self.playerItem = AVPlayerItem.init(URL: url!)
            self.player = AVPlayer.init(playerItem: self.playerItem)
            self.playerVC = AVPlayerViewController.init();
            self.playerVC.player = self.player;
            self.player.currentItem!.playbackLikelyToKeepUp

            self.presentViewController(self.playerVC, animated: true) { () -> Void in
                self.playerVC.player?.play()
            }

        }else {

            let alert = UIAlertController(title: error!.localizedDescription, message:  error!.localizedFailureReason, preferredStyle: UIAlertControllerStyle.Alert)
            alert.addAction(UIAlertAction(title: "OK", style: UIAlertActionStyle.Default, handler: nil))
            self.presentViewController(alert, animated: true, completion: nil)

        }

    })



}
override func viewDidLoad() {
    super.viewDidLoad()
    // Do any additional setup after loading the view, typically from a nib.


}

override func viewDidAppear(animated: Bool) {

        }

override func didReceiveMemoryWarning() {
    super.didReceiveMemoryWarning()
    // Dispose of any resources that can be recreated.
   }    
}

これは私がシミュレーターで得たものです。

ここに画像の説明を入力

このhttps://github.com/lilfaf/YTVimeoExtractorを使用して、このサンプル プロジェクトを実行しました。あなたはそれを試してみて、私に知らせることができます.

4

1 に答える 1