我试图设置AVPlayer的视频帧,使其占用屏幕大小的75%,并让背景视图使用透明度可见。设置视频帧AVPlayer
但是,我无法设置我的新VC的大小,它总是需要整个宽度。
这里是我的代码:
import AVKit
import AVFoundation
class VideoPlayer {
// ----------------------------------------------------------------------------------
// MARK: - Properties
// ----------------------------------------------------------------------------------
var videoName = "here video url"
let playerViewController = AVPlayerViewController()
// ----------------------------------------------------------------------------------
// MARK: - Setup
// ----------------------------------------------------------------------------------
func setupAndPlayVideo(sourceViewController: UIViewController) {
// Get video URL
let videoURL = urlForFile(videoName)
let player = AVPlayer(URL: videoURL!)
// Grey transparent background
playerViewController.view.backgroundColor = UIColor(red: 0.4, green: 0.4, blue: 0.4, alpha: 0.5)
// Prevent user from pausing/dismissign the video
playerViewController.showsPlaybackControls = false
// Present the video player VC and play video
playerViewController.player = player
// This does not change anything (sample hard coded values)
playerViewController.view.frame = CGRectMake(0, 0, 300, 300)
sourceViewController.presentViewController(playerViewController, animated: true) {
self.playerViewController.player!.play()
}
}
}
编辑
所以我决定改变我的策略,并在我的故事板添加AVPlayerViewController。
这里是我用来播放我的视频代码:
// Game over
case PapooSegue.GameEndSegue.rawValue:
// Get photo VC
let videoVC = segue.destinationViewController as! AVPlayerViewController
// Get video URL and provide it to the player
let videoName = papooBrain!.getGameOverVideoName()
let videoURL = urlForFile(videoName)
videoVC.player = AVPlayer(URL: videoURL!)
// Set grey/transparent background
videoVC.view.backgroundColor = UIColor(red: 0.5, green: 0.5, blue: 0.5, alpha: 0.6)
// Play video
videoVC.player?.play()
的问题仍然是相同的。我试图与AVPlayerLayer as suggested in this post玩,但我结束了2个视频播放:
- 由videoGravity拉伸我猜
- 的一个具有自定义框架的一个
我不我不知道如何才能在适当的尺寸下打出一个。
对不起,您正在使用avplayerviewocntroller默认值。所以在这种情况下,你应该使用childviewcontroller来达到你想要的。 –
恐怕我没有得到你的建议:/ – H4Hugo
嗯,让我尝试在这种情况下的任何事情:D。对不起,因为我的错误回答。 –