不推荐使用MPMoviePlayerController,现在怎么办? [英] MPMoviePlayerController deprecated, what now?
问题描述
所以当MPMoviePlayerController被弃用时,我一直在寻找解决方案。我当前的代码工作正常:
moviePlayer = MPMoviePlayerController(contentURL:receivedURL)
moviePlayer!.movieSourceType = MPMovieSourceType.Unknown
moviePlayer!.view.frame = view.bounds
moviePlayer!.scalingMode = MPMovieScalingMode.AspectFill
moviePlayer!.controlStyle = MPMovieControlStyle.None
moviePlayer!.shouldAutoplay = true
view.addSubview((moviePlayer?.view)!)
moviePlayer?.setFullscreen(true,animated:true)
moviePlayer!.play()
我录制了一段视频,一旦完成录制,它将在新视图中使用上面的代码播放。但据我所知,在iOS9中不推荐使用MPMoviePlayerController,我找不到像上面的代码一样的任何解决方案。我知道我需要使用AVPlayer和AVPlayerViewController。
我试过
var玩家:AVPlayer!
让avPlayerLayer:AVPlayerLayer = AVPlayerLayer(玩家:玩家)
avPlayerLayer.frame = CGRect(x:50,y:50,宽度:100,身高:100)
self.view.layer .addSublayer(avPlayerLayer)
player = AVPlayer(url:receivedURL)
player.play()
在这里你将播放器添加到AVPlayerLayer后初始化。试试这样:
让玩家= AVPlayer(网址:receivedURL)
让avPlayerLayer:AVPlayerLayer = AVPlayerLayer(玩家:玩家)
avPlayerLayer.frame = CGRect(x:50,y:50,宽度:100,身高:100)
self.view.layer.addSublayer(avPlayerLayer)
player.play( )
So I have been searching for a solution now when MPMoviePlayerController is getting deprecated. my current code works fine:
moviePlayer = MPMoviePlayerController(contentURL: receivedURL)
moviePlayer!.movieSourceType = MPMovieSourceType.Unknown
moviePlayer!.view.frame = view.bounds
moviePlayer!.scalingMode = MPMovieScalingMode.AspectFill
moviePlayer!.controlStyle = MPMovieControlStyle.None
moviePlayer!.shouldAutoplay = true
view.addSubview((moviePlayer?.view)!)
moviePlayer?.setFullscreen(true, animated: true)
moviePlayer!.play()
I record a video, and once I'm done recording, it will be played back with the code above in a new view. But as I understand MPMoviePlayerController is deprecated in iOS9 and I can't find any solution working like the code above. I understand I need to user AVPlayer and AVPlayerViewController.
I have tried this and many other solutions that looks like them. But it just won't work like I want it in the code above.
I just want to record a video, and have it played back in a new view, exactly like snapchat.
Please help me
ADDED ADDITIONAL INFO:
So when I try to fix it with this (the accepted answer) or this solution (AVPlayer), the view is blank. nothing is shown.
var player:AVPlayer!
let avPlayerLayer:AVPlayerLayer = AVPlayerLayer(player: player)
avPlayerLayer.frame = CGRectMake(50,50,100,100)
self.view.layer.addSublayer(avPlayerLayer)
player = AVPlayer(URL: receivedURL)
player.play()
And If i try with the AVPlayerViewController which I had to modify:
let player = AVPlayer(URL: receivedURL)
let playerViewController = AVPlayerViewController()
playerViewController.player = player
dispatch_async(dispatch_get_main_queue(), {
self.presentViewController(playerViewController, animated: true) {
playerViewController.player?.play()
}
})
this happens, where nothing is shown.
var player:AVPlayer!
let avPlayerLayer:AVPlayerLayer = AVPlayerLayer(player: player)
avPlayerLayer.frame = CGRect(x:50,y:50,width:100,height:100)
self.view.layer.addSublayer(avPlayerLayer)
player = AVPlayer(url: receivedURL)
player.play()
here you initialize your player AFTER adding it to AVPlayerLayer. try like this:
let player = AVPlayer(url: receivedURL)
let avPlayerLayer:AVPlayerLayer = AVPlayerLayer(player: player)
avPlayerLayer.frame = CGRect(x:50,y:50,width:100,height:100)
self.view.layer.addSublayer(avPlayerLayer)
player.play()
这篇关于不推荐使用MPMoviePlayerController,现在怎么办?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!