小编Tux*_*tle的帖子

如何关闭以前的AVPlayer和AVPlayerItem

我正在Swift中制作一个iOS应用,该应用会在屏幕右上角的一小层中循环播放视频,以显示特定颜色项目的视频。用户然后在屏幕上点击相应的彩色项目。当他们这样做时,videoName变量将随机更改为下一种颜色,并触发相应的视频。如附件代码所示,我使用AVPlayer,AVPlayerItem提升,播放和循环播放视频没有问题。我遇到的问题是,无论何时显示下一个视频,上一个视频都会在其后面保持打开状态。此外,播放了16个视频后,播放器在我的iPad上完全消失了。我已经尝试过在此站点和其他站点中提出的许多建议,但是要么迅速发现它们存在问题,要么就不起作用。 所以问题:在我的代码中,我如何告诉它“嘿,下一个视频已开始播放,请删除上一个视频,并将其分层并释放内存,以便我可以根据需要播放任意数量的视频”?

//set variables for video play
var playerItem:AVPlayerItem?
var player:AVPlayer?

//variables that contain video file path, name and extension
var videoPath = NSBundle.mainBundle().resourcePath!
var videoName = "blue"
let videoExtension = ".mp4"

//DISPLAY VIDEO
func showVideo(){

        //Assign url path
        let url = NSURL(fileURLWithPath: videoPath+"/Base.lproj/"+videoName+videoExtension)
        playerItem = AVPlayerItem(URL: url)
        player=AVPlayer(playerItem: playerItem!)
        let playerLayer=AVPlayerLayer(player: player!)

        //setplayser location in uiview and show video
        playerLayer.frame=CGRectMake(700, 5, 350, 350)
        self.view.layer.addSublayer(playerLayer)
        player!.play()

     // Add notification to know when the video ends, then replay   it again.  THIS …
Run Code Online (Sandbox Code Playgroud)

ios avplayer swift avplayeritem

6
推荐指数
1
解决办法
9025
查看次数

标签 统计

avplayer ×1

avplayeritem ×1

ios ×1

swift ×1