1

我有一个 SKVideoNode,就像这样 -

let path = "videoURL";
let url = NSURL(string: path);
let asset = AVURLAsset(URL: url!,options: nil);
let playerItem = AVPlayerItem(asset: asset);
let playerThree = AVPlayer(playerItem: playerItem);
let videoNode = SKVideoNode(AVPlayer: playerThree);

我想在按下按钮时暂停,按钮看起来像这样 -

var isPausedThreeSixty : Bool = false;

@IBAction func threesixty(sender: AnyObject){
    if (videoPlayer == 1) { // check if video player is the 360 videoplayer
        if(isPausedThreeSixty == false){ //check if video is paused, if not pause video on click
            videoNode?.pause(); // pause video node
            print("pause player");
            isPausedThreeSixty == true;
        }else{ //if app runs else, video is paused, proceed to unpause.
            videoNode?.play();
            print("play player");
            isPausedThreeSixty = false;
        }
    }
}

我的代码确实打印了pause playerplay player但它不会暂停视频,我还读到我应该暂停 AVPlayer,但是在调用playerThree.pause();视频时也没有暂停。

请参阅 -如何在 iOS Sprite Kit SKVideoNode 中控制视频的播放?

AVPlayer 播放 SKVideoNode 视频,我就是无法控制播放

为什么多个 SO 答案说调用SKVideoNode 上的.pauseand.play可以工作,即使在实现它时,它实际上并没有工作。

暂停此视频后,我希望能够切换到新的视频播放器,我已经开始工作了.. 只是我无法删除或暂停此视频播放器。

请参阅 - https://forums.developer.apple.com/thread/28470 根据此帖子,AVPlayer 速率正在被覆盖,因此无法暂停 SKVideoNode。

4

1 回答 1

1

我不得不暂停 AVPlayerItem 所以 -

playerThree.pause();

成功了。

于 2016-03-30T13:10:05.173 回答