Ios MPMoviePlayerController已弃用,现在怎么办?
所以我一直在寻找一个解决方案,当MPMoviePlayerController被弃用时。我当前的代码运行良好:Ios MPMoviePlayerController已弃用,现在怎么办?,ios,swift,mpmovieplayercontroller,avplayer,Ios,Swift,Mpmovieplayercontroller,Avplayer,所以我一直在寻找一个解决方案,当MPMoviePlayerController被弃用时。我当前的代码运行良好: moviePlayer = MPMoviePlayerController(contentURL: receivedURL) moviePlayer!.movieSourceType = MPMovieSourceType.Unknown moviePlayer!.view.frame = view.bounds moviePlayer!.scalingMode
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
我已经尝试过许多类似的解决方案。
但是它不能像我在上面的代码中希望的那样工作
我只想录制一段视频,并在新视图中播放,就像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()
若我尝试使用我必须修改的:
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()
}
})
这种情况会发生,没有显示任何内容。
在这里,您可以在将播放器添加到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()
您的链接答案似乎是解决方案。展开“但它不能像我希望的那样在上面的代码中工作。”到底是什么问题?当您尝试使用
avplayervewcontroller
时,遇到了什么问题?你的问题没有道理。什么是“不工作?”好的,我将编辑问题并添加一张图片:)但是对于我链接的答案,有两个问题:第一个问题是没有播放任何内容,视图完全空白;另一个问题是显示了视频播放器,但它是灰色的。我将使用打印屏幕并添加它们,代码仍然只是一个空视图:/您的视频url可能有问题。我试过这个--一切都正常。请记住,如果您的视频url不是https://,则需要配置应用程序传输安全策略。这是一个愚蠢的问题,我应该在viewdidload中执行此操作吗?like:override func viewDidLoad(){super.viewDidLoad()let urlPath:String=”“let url:NSURL=NSURL(String:urlPath)!let player=AVPlayer(url:url)let avPlayerLayer:avPlayerLayer=avPlayerLayer(player:player)avPlayerLayer.frame=CGRectMake(50,50100100)self.view.layer.addSublayer(avPlayerLayer)player.play()}是的,可以在viewDidLoad中执行此操作。顺便说一句,很抱歉,我忘记了http://在我的linkno中,我想它只是Stackoverflow在粘贴到这里时删除了它。。我在viewdidload中按照上面的代码进行了操作,但仍然为空。
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()