vb 中怎么获取WindowsMediaPlayer控件播放视频的当前播放时间(进度)

vb 中怎么获取WindowsMediaPlayer控件播放视频的当前播放时间(进度),第1张

WindowsMediaPlayercontrolscurrentPosition

double类型,显示当前进度

WindowsMediaPlayercontrolscurrentPositionString

string类型,显示当前进度,字符串格式。如“00:23”

label1caption=WindowsMediaPlayercontrolscurrentPositionString

不过要把这个代码放到timer控件里才能实时显示时间

要显示毫秒的用这个,写到Timer里面,但是Timer的Interval属性值要小一点,不然没什么效果

Private Sub Timer1_Timer()

If InStr(WindowsMediaPlayer1ControlscurrentPosition, "") Then

Label1Caption = WindowsMediaPlayer1ControlscurrentPosition \ 60 & ":" & Format(WindowsMediaPlayer1ControlscurrentPosition Mod 60, "00") & "" & Left(Split(WindowsMediaPlayer1ControlscurrentPosition, "")(1), 3)

Else

Label1Caption = WindowsMediaPlayer1ControlscurrentPosition \ 60 & ":" & Format(WindowsMediaPlayer1ControlscurrentPosition Mod 60, "00") & "000"

End If

End Sub

// 获取持续时间

if(videoNaturalDurationHasTimeSpan) {

var durationTime = videoNaturalDurationTimeSpan;

}

// 设置当前的进度

videoPosition = TimeSpan 的实例;

如果楼主不知道 TimeSpan 是什么,那么我只能表示无能为力了。

1设备

这里用的是海康的鱼眼摄像头,型号是DS-2CD3955FWD-IWS,其实基本上能支持sdk二次开发的IP摄像头都可以(参考这里)。鱼眼摄像头相比普通的摄像头经过扭曲,因此在应用的时候一般需要进行反扭曲,这一步会造成比较大的延迟,因此没有不是特定需求的话尽量使用普通的就可以。

注:海康的萤石系列貌似并不能通过RTSP地址获取,而这里的方法需要用RTSP进行视频流获取,所以无法萤石系列就不在此列。

2通过RTSP地址获取视频流

首先需要知道海康设备的RTSP地址,可以通过这里进行查看。

import cv2

source = ""rtsp://admin:12345@192168164/Streaming/Channels/1"

注: admin和12345分别是ip camera的用户名和密码,在浏览器上第一次登录摄像头的时候会进行设置;

192168164是摄像头的默认IP,在浏览器中输入即可进入登录页面(如下);

Channels/1和Channels/2分别对应主码流和子码流地址,两者的分辨率不同。IP摄像头无法通过opencv调节分辨率,只能在海康的监控界面的配置进行设置(如下)。

3 摄像头校准(calibration)(optional)

这个配置有很多,而且官方提供的校准文档很详细(戳这里),就不具体细讲了。需要python版本的代码的话可以直接fork这里;如果是c++版本的话可以参考这里

你要确保flv已经加载后,才能读到totalTime;

可以添加监听,根据需要在stateChange, ready等事件时读取。

playeraddEventListener();

playerplay(videoPath);

这个windowMeadiaPlayer有几个属性 其中可以获取正在播放的文件总时间,。

如thiswindowMeadiaPlayercurrentMediadurationString是获取正在播放的时间 他是返回string类型的

我把windowsmediaplaer的重要属性卸载这个上面 你自己看看

属性/方法名: 说明:

[基本属性]

URL:String; 指定媒体位置,本机或网络地址

uiMode:String; 播放器界面模式,可为Full, Mini, None, Invisible

playState:integer; 播放状态,1=停止,2=暂停,3=播放,6=正在缓冲,9=正在连接,10=准备就绪

enableContextMenu:Boolean; 启用/禁用右键菜单

fullScreen:boolean; 是否全屏显示

[controls] wmpcontrols //播放器基本控制

controlsplay; 播放

controlspause; 暂停

controlsstop; 停止

controlscurrentPosition:double; 当前进度

controlscurrentPositionString:string; 当前进度,字符串格式。如“00:23”

controlsfastForward; 快进

controlsfastReverse; 快退

controlsnext; 下一曲

controlsprevious; 上一曲

[settings] wmpsettings //播放器基本设置

settingsvolume:integer; 音量,0-100

settingsautoStart:Boolean; 是否自动播放

settingsmute:Boolean; 是否静音

settingsplayCount:integer; 播放次数

[currentMedia] wmpcurrentMedia //当前媒体属性

currentMediaduration:double; 媒体总长度

currentMediadurationString:string; 媒体总长度,字符串格式。如“03:24”

currentMediagetItemInfo(const string); 获取当前媒体信息"Title"=媒体标题,"Author"=艺术家,"Copyright"=版权信息,"Description"=媒体内容描述,"Duration"=持续时间(秒),"FileSize"=文件大小,"FileType"=文件类型,"sourceURL"=原始地址

currentMediasetItemInfo(const string); 通过属性名设置媒体信息

currentMedianame:string; 同 currentMediagetItemInfo("Title")

[currentPlaylist] wmpcurrentPlaylist //当前播放列表属性

currentPlaylistcount:integer; 当前播放列表所包含媒体数

currentPlaylistItem[integer]; 获取或设置指定项目媒体信息,其子属性同wmpcurrentMedia

以上就是关于vb 中怎么获取WindowsMediaPlayer控件播放视频的当前播放时间(进度)全部的内容,包括:vb 中怎么获取WindowsMediaPlayer控件播放视频的当前播放时间(进度)、C#怎么获取MediaElement视频的总时间,具体的代码、请问如何获取IP camera每一帧的时间等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/9533646.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-29
下一篇 2023-04-29

发表评论

登录后才能评论

评论列表(0条)

保存