2016-09-23 6 views
1

私はストリームビデオ(rtmpによる)を表示しているアプリで作業しています。私はMobileVLCKitを使い始めました。私はビデオのスナップショットを作る機能が必要です。私は組み込み関数を試しましたVLCMediaPlayer(MobileVLCKit)のスナップショットを作成

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

しかし、それは動作しません。それはサポートがvideolanフォーラムにそれについて書かれているものです:

この方法は、それがiOSの(それが 私は同意し、すべきではない何か)に露出している間にOS Xのみ、それが動作しませんです。モバイルデバイス

は、それから私は、標準 iOS機能を使用しようとしました:私はそれだけ UIView背景のスクリーンショットではなく、ビデオを取得結果で

@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() 

。何か解決策があるか、少なくとも、どの方向を探し続けるべきか、誰にも分かっていますか?

答えて

0

ソリューションは、私が思ったよりも簡単だったように、あなたのコード内のMediaPlayerのデリゲートを追加しました。

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(); 
関連する問題