ios – 使用AVPlayer在后台播放视频会产生AspectFill和循环问题

ios – 使用AVPlayer在后台播放视频会产生AspectFill和循环问题,第1张

概述这就是我所拥有的,我希望这个视频能够填满整个屏幕(aspectFill) playerLayer.videoGravity = kCAGravityResizeAspectFill 应该做Aspect Fill,但我仍然会在屏幕的顶部和底部出现黑条. 最后一行应该循环视频,但它只是变暗并停止播放. 任何建议表示赞赏. var moviePlayer: AVPlayer!override fun @H_301_6@ 这就是我所拥有的,我希望这个视频能够填满整个屏幕(aspectFill)

playerLayer.vIDeoGravity = kCAGravityResizeAspectFill
应该做Aspect Fill,但我仍然会在屏幕的顶部和底部出现黑条.

最后一行应该循环视频,但它只是变暗并停止播放.

任何建议表示赞赏.

var movIEPlayer: AVPlayer!overrIDe func vIEwDIDLoad() {    super.vIEwDIDLoad()        // Load the vIDeo from the app bundle.    let vIDeoURL: NSURL = NSBundle.mainBundle().URLForResource("vIDeo",withExtension: "mp4")!    self.movIEPlayer = AVPlayer(URL: vIDeoURL)    self.movIEPlayer.muted = true    let playerLayer = AVPlayerLayer(player: self.movIEPlayer)    playerLayer.vIDeoGravity = kCAGravityResizeAspectFill //this not working    playerLayer.zposition = -1    playerLayer.frame = self.vIEw.frame    self.vIEw.layer.addSublayer(playerLayer)    self.movIEPlayer.play()    // Loop vIDeo.    NSNotificationCenter.defaultCenter().addobserver(self,selector: "loopVIDeo",name: AVPlayerItemDidplayToEndTimeNotification,object: self.movIEPlayer)}func loopVIDeo() {    self.movIEPlayer.play()}
解决方法 您使用错误的视频重力值请更改为:

playerLayer.vIDeoGravity = AVLayerVIDeoGravityResizeAspectFill;

请注意,此值适用于视频,其中您使用的值用于重新缩放图像.

为了让你的视频循环播放,你刚刚忘记在完成播放后回放视频.我不使用swift但是在Objc C中你的loopVIDeo函数看起来像这样:

-(voID) loopVIDeo {    [self.movIEPlayer seektotime:kCMTimeZero];    [self.movIEPlayer play];}
总结

以上是内存溢出为你收集整理的ios – 使用AVPlayer在后台播放视频会产生AspectFill和循环问题全部内容,希望文章能够帮你解决ios – 使用AVPlayer在后台播放视频会产生AspectFill和循环问题所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1058827.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-25
下一篇 2022-05-25

发表评论

登录后才能评论

评论列表(0条)

保存