如何在vb6中使用VLC-Activex插件拍摄快照

如何在vb6中使用VLC-Activex插件拍摄快照,vb6,vlc,Vb6,Vlc,我正在使用VLC Activex插件从视频流中拍摄快照 但是当我调用函数vlc.video.takeSnapshot时,它返回Nothing 这是代码: Dim pic As IPictureDisp vlc.playlist.pause '--Video is paused Set pic = vlc.video.takeSnapshot '--Take snapshot and set it into pic vlc.playlist.play

我正在使用VLC Activex插件从视频流中拍摄快照
但是当我调用函数vlc.video.takeSnapshot时,它返回Nothing
这是代码:

Dim pic As IPictureDisp
vlc.playlist.pause                  '--Video is paused
Set pic = vlc.video.takeSnapshot    '--Take snapshot and set it into pic
vlc.playlist.play                   '--Video play again
If pic Is Nothing Then
   Debug.Print "Nothing in pic"
End If
中间窗口显示:“图片中无任何内容”

已定义快照功能:

Function takeSnapshot() As IPictureDisp
Member of AXVLC.IVLCVideo
take video snapshot and save it into picture object.
如果有人需要帮助,此功能将不再工作,对吗?

Dim resp As Variant
Dim resp As Variant
Dim ls_prev_path As String
Dim ls_temp_path As String
Dim pic As IPictureDisp

ls_prev_path = CurDir
ls_temp_path = App.Path + IIf(Right(App.Path, 1) = "\", "", "\")
ls_temp_path = ls_temp_path + "tmp_snapshot\"

If Dir(ls_temp_path, vbDirectory) <> "" Then
    If Dir(ls_temp_path + "*.bmp") <> "" Then Kill ls_temp_path + "*.bmp"
Else
    MkDir ls_temp_path
End If

ChDir ls_temp_path

vlc1.playlist.pause
Set resp = vlc1.video.takeSnapshot()
vlc1.playlist.play

DoEvents

If Dir(ls_temp_path + "*.*") <> "" Then
    ls_pic_file = ls_temp_path + Dir(ls_temp_path + "*.*")
    Set pic = LoadPicture(ls_pic_file)
End If

ChDir ls_prev_path
Dim ls_上一个路径作为字符串 作为字符串的Dim ls\U temp\U路径 模糊pic为ipicutredisp ls\u prev\u path=CurDir ls\u temp\u path=App.path+IIf(右(App.path,1)=“\”,“,”,“\”) ls_temp_path=ls_temp_path+“tmp_快照” 如果Dir(ls_temp_path,vbDirectory)“,则 如果Dir(ls_temp_path+“*.bmp”)”,则杀死ls_temp_path+“*.bmp” 其他的 MkDir ls_temp_路径 如果结束 ChDir ls\u temp\u路径 vlc1.playlist.pause Set resp=vlc1.video.takeSnapshot() vlc1.playlist.play 多芬特 如果Dir(ls_temp_path+“**”)“”则 ls_pic_file=ls_temp_path+Dir(ls_temp_path+“***”) 设置pic=LoadPicture(ls\u pic\u文件) 如果结束 ChDir ls_prev_路径
尺寸响应作为变型
Dim ls_上一个路径作为字符串
作为字符串的Dim ls\U temp\U路径
模糊pic为ipicutredisp
ls\u prev\u path=CurDir
ls\u temp\u path=App.path+IIf(右(App.path,1)=“\”,“,”,“\”)
ls_temp_path=ls_temp_path+“tmp_快照”
如果Dir(ls_temp_path,vbDirectory)“,则
如果Dir(ls_temp_path+“*.bmp”)”,则杀死ls_temp_path+“*.bmp”
其他的
MkDir ls_temp_路径
如果结束
ChDir ls\u temp\u路径
vlc1.playlist.pause
Set resp=vlc1.video.takeSnapshot()
vlc1.playlist.play
多芬特
如果Dir(ls_temp_path+“**”)“”则
ls_pic_file=ls_temp_path+Dir(ls_temp_path+“***”)
设置pic=LoadPicture(ls\u pic\u文件)
如果结束
ChDir ls_prev_路径

您是否尝试过不暂停?我还没有读过文档,但是我假设在视频对象上调用的任何方法都希望视频能够正常播放。还有,你用的是什么版本的VLC?我试过了,但它也一样,我用的是VLC.versionInfo,它返回“2.1.5 Rincewind”,你试过不暂停吗?我还没有读过文档,但是我假设在视频对象上调用的任何方法都希望视频能够正常播放。还有,你使用的是什么版本的VLC?我试过了,但效果一样,我使用的是VLC.versionInfo,它返回“2.1.5 Rincewind”