2015-12-02 98 views
0

我有一个Swift应用程序。我想通过使用moviePlayer播放一些视频。我正在使用下面的代码。视频拉伸问题iOS Swift

let url = NSURL.fileURLWithPath(path) 
     moviePlayer = MPMoviePlayerController(contentURL: url) 
//  moviePlayer?.controlStyle = .None 
     if let player = moviePlayer { 
      player.view.frame = CGRect(x: 20, y: 165, width: widthVideoView, height: heightVideoView) 
      player.prepareToPlay() 
      player.scalingMode = .AspectFill 
      self.view.addSubview(player.view) 

     } 

播放视频没问题。但现在我的视频被拉长了。我认为这是因为

 player.scalingMode = .AspectFill 

我的截图是这样的。 enter image description here

所以我改变

player.scalingMode = .AspectFit 

然后我的屏幕就像这样(用黑色屏幕顶部底部。)我如何处理这个问题。 enter image description here

+0

您试图实现的是什么? – Armin

+0

看看我的第一个截图视频拉伸了吗?在我的第二个地方有黑色的空间。我希望像第一个一样全尺寸的视频,而不是拉伸。 – Amsheer

+0

试试这个player.view.frame = CGRect(x:0,y:0,width:widthVideoView,height:heightVideoView)和layer.scalingMode = .AspectFit –

回答

0

很抱歉的编辑答案,如果你读了实况:https://developer.apple.com/library/prerelease/ios/documentation/MediaPlayer/Reference/MPMoviePlayerController_Class/index.html#//apple_ref/c/tdef/MPMovieScalingMode

  • .aspectFit:将创建blackBar,因为它使视频
  • .aspectFill的纵横比,会像一个放大(没有黑条,但视频被剪切)
    • 。填充将拉伸视频以适应(我认为您需要这一个或更改视图以遵循宽高比)。

如果你不尊重原始宽高比:它总是伸展或有黑网吧太补。 因此,您可以将scalingMode更改为。填充或更改视图以尊重宽高比

+0

我不明白你的意思? – Amsheer

+0

有关宽高比和当前视频标准的更多信息:https://en.wikipedia.org/wiki/Aspect_ratio_(image)#Current_video_standards – kholl

+0

我没有测试过,但这一个似乎很有希望获得视频https ://discussions.apple.com/thread/2794706开始= 0&TSTART = 0 – kholl