gpt4 book ai didi

ios - 制作 VLCMediaPlayer (MobileVLCKit) 的快照

转载 作者:行者123 更新时间:2023-11-28 08:27:16 31 4
gpt4 key购买 nike

我正在开发一个应用程序,显示流视频(通过 rtmp)。我已经开始为此使用 MobileVLCKit。我需要一个可以制作视频快照的功能。我试过内置函数

    func saveVideoSnapshotAt(path: String!, withWidth: UInt32, andHeight: UInt32)

但它不起作用。这就是支持人员在 videolan 论坛上写的:

"This method is OS X only. While it is exposed on iOS (what it should not be, I agree), it won't work on mobile devices."

然后我尝试使用标准的 iOS 功能:

    @IBOutlet weak var videoView: UIView!
var mediaPlayer = VLCMediaPlayer()
if let url = NSURL(string: "rtmp://someurl") {
let media = VLCMedia(URL: url)
mediaPlayer.media = media
mediaPlayer.drawable = videoView
mediaPlayer.play()
}
UIGraphicsBeginImageContext(videoView.frame.size);
guard let context = UIGraphicsGetCurrentContext() else {
print("Couldn't get context")
return
}
videoView.layer.renderInContext(context)
guard let screenshot = UIGraphicsGetImageFromCurrentImageContext() else {
UIGraphicsEndImageContext()
return
}
UIGraphicsEndImageContext()

结果我只得到 UIView 背景截图,里面没有视频。有谁知道是否有任何解决方案或至少我应该继续寻找哪个方向?

最佳答案

解决方案比我想象的要简单。

    let size = mediaPlayer.drawable.frame.size

UIGraphicsBeginImageContextWithOptions(size, false, UIScreen.mainScreen().scale)

let rec = mediaPlayer.drawable.frame
mediaPlayer.drawable.drawViewHierarchyInRect(rec, afterScreenUpdates: false)

let image = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();

关于ios - 制作 VLCMediaPlayer (MobileVLCKit) 的快照,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39656987/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com