11 mpmovieplayercontroller ios avplayer swift
所以当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()
Run Code Online (Sandbox Code Playgroud)
我录制了一个视频,一旦我完成录制,它将在新视图中使用上面的代码播放.但据我所知,MPMoviePlayerController在iOS9中已弃用,我找不到任何像上面代码一样的解决方案.我明白我需要用户AVPlayer和AVPlayerViewController.
我尝试了这个和许多其他类似的解决方案.但它不会像我在上面的代码中那样工作.
我只是想录制一个视频,并以新视图播放,就像Snapchat一样.
请帮我
添加附加信息:
因此,当我尝试使用此(已接受的答案)或此解决方案(AVPlayer)进行修复时,视图为空白.没有任何显示.
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()
Run Code Online (Sandbox Code Playgroud)
如果我尝试使用我必须修改的AVPlayerViewController:
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()
}
})
Run Code Online (Sandbox Code Playgroud)
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()
Run Code Online (Sandbox Code Playgroud)
在这里,您将播放器添加到AVPlayerLayer后初始化.试试这样:
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()
Run Code Online (Sandbox Code Playgroud)