在屏幕的一部分上以模态方式显示视频

时间:2016-03-31 12:22:03

标签: ios swift video avplayer

我正在尝试在游戏结束时(几分钟后)显示视频。

以下是要求:

  • 视频以模态呈现。一旦它结束,它仍然停留在最后一张图片上,只能通过重新启动应用程序重启游戏(这种行为是必需的)

  • 视频没有任何控制(没有暂停,没有“完成”按钮等。)

  • 最重要的是:它不会占据整个屏幕。我希望例如在屏幕中间显示它,大约是主屏幕尺寸的50%。 (我需要看到下面的VC带有灰色/透明效果)

我使用MPMoviePlayerController实现了这一点,但我没有注意到它已被弃用。所以我现在正在使用AVPlayerViewController(直接在故事板上添加)

这样我就可以:

  • 以模态方式呈现(使用segue)
  • 设置灰色/透明背景,以便我可以在
  • 下面看到VC
  • 禁用控件

但我不能阻止它调整我的视频大小(我敢打赌因为videoGravity会调整它的大小)

这是我的代码:

    // Game over
    case GameSegue.GameEndSegue.rawValue:

        // Get photo VC
        let videoVC = segue.destinationViewController as! AVPlayerViewController
        videoVC.modalTransitionStyle = .CrossDissolve

        // Remove controls on the video
        videoVC.showsPlaybackControls = false

        // Get video URL and provide it to the player
        let videoURL  = helperClass.urlForFile(videoName)
        videoVC.player = AVPlayer(URL: videoURL!)

        videoVC.view.backgroundColor = UIColor(red: 0.5, green: 0.5, blue: 0.5, alpha: 0.6)

        // This doesn't change anything (hard coded for example)
        videoVC.view.frame = CGRectMake(0, 0, 300, 300)

        // Play video
        videoVC.player?.play()

有人可以帮忙吗?

0 个答案:

没有答案