Я работаю над приложением, показывая потоковое видео (по rtmp
). Я начал использовать для этого MobileVLCKit
. Мне нужна функция, которая сделает снимок видео. Я пробовал встроенную функциюСделать снимок VLCMediaPlayer (MobileVLCKit)
func saveVideoSnapshotAt(path: String!, withWidth: UInt32, andHeight: UInt32)
Но это не работает. Это то, что поддержка написала об этом на videolan
форуме:.
"Этого метод является OS X только Несмотря на то, что выставлено на прошивке (что он должен не быть, я согласен), он не будет работать на мобильные устройства. "
Затем я попытался использовать стандартную 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
скриншот фона, а не видео в нем. Кто-нибудь знает, есть ли какое-либо решение или, по крайней мере, какое направление я должен продолжать искать?
Да. Я просто не хотел писать весь код здесь. Я делаю все действия с videoView, когда видео загружается и воспроизводится. –