UIView 容器内的 MPMoviePlayerControllers 视图
MPMoviePlayerControllers view inside UIView container
我正在尝试在通用 UIView 容器中显示使用 UIImagePickerController 捕获的电影,但它无法正常工作。容器视图可见,但容器视图中未显示视频。
我已将我的代码放在 didFinishPickingMediaWithInfo
中,这就是我目前所拥有的。捕获工作正常,我得到了一部有效的电影 url 但我不确定我 can/should 是否只是将 moviePlayer.view
作为子视图添加到容器中以及它的大小是否正确。我希望 scalingMode = .AspectFill
会解决这个问题。
@IBOutlet weak var videoContainer: UIView!
func imagePickerController(picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [NSObject : AnyObject]) {
dismissViewControllerAnimated(true, completion: nil)
if let movieUrl = info[UIImagePickerControllerMediaURL] as? NSURL {
println("Movie url found: \(movieUrl)")
let moviePlayer = MPMoviePlayerController(contentURL: movieUrl)
moviePlayer.controlStyle = MPMovieControlStyle.None
moviePlayer.prepareToPlay()
moviePlayer.scalingMode = .AspectFill
videoContainer.addSubview(moviePlayer.view)
moviePlayer.play()
}
}
文档说:
player's frame must match parent's
我看不到您尝试设置播放器视图框架的任何代码行。
缩放模式与视图的框架无关。它用于定义视频内容在视图中的实际缩放方式
我正在尝试在通用 UIView 容器中显示使用 UIImagePickerController 捕获的电影,但它无法正常工作。容器视图可见,但容器视图中未显示视频。
我已将我的代码放在 didFinishPickingMediaWithInfo
中,这就是我目前所拥有的。捕获工作正常,我得到了一部有效的电影 url 但我不确定我 can/should 是否只是将 moviePlayer.view
作为子视图添加到容器中以及它的大小是否正确。我希望 scalingMode = .AspectFill
会解决这个问题。
@IBOutlet weak var videoContainer: UIView!
func imagePickerController(picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [NSObject : AnyObject]) {
dismissViewControllerAnimated(true, completion: nil)
if let movieUrl = info[UIImagePickerControllerMediaURL] as? NSURL {
println("Movie url found: \(movieUrl)")
let moviePlayer = MPMoviePlayerController(contentURL: movieUrl)
moviePlayer.controlStyle = MPMovieControlStyle.None
moviePlayer.prepareToPlay()
moviePlayer.scalingMode = .AspectFill
videoContainer.addSubview(moviePlayer.view)
moviePlayer.play()
}
}
文档说:
player's frame must match parent's
我看不到您尝试设置播放器视图框架的任何代码行。 缩放模式与视图的框架无关。它用于定义视频内容在视图中的实际缩放方式