媒体播放器 - 显示自定义时间码

时间:2013-09-06 13:19:05

标签: vb.net media-player timespan

我正在尝试制作一个项目的视频播放器,当我来到一个舞台,我需要在正在播放的视频旁边的标签中显示时间码(时间戳)时,这似乎是一个很大的挑战

程序的功能是......电影文件名包含电影文件的录制开始时间,格式为“17:56:33_Camera01.avi”。当我使用URL在播放器中加载电影并单击播放时播放电影。我使用计时器在秒,分钟和小时内使用计时器刻度子中的以下方法获取当前播放位置。

Dim PlayHour, PlayMin, PlaySec As Integer
Dim iSecond As Double = AxWindowsMediaPlayer1.Ctlcontrols.currentPosition
Dim iSpan As TimeSpan = TimeSpan.FromSeconds(iSecond)

PlayHour = iSpan.Hours.ToString.PadLeft(2, "0"c)
PlayMin = iSpan.Minutes.ToString.PadLeft(2, "0"c)
PlaySec = iSpan.Seconds.ToString.PadLeft(2, "0"c)

我的要求是通过将当前位置的小时,分​​钟和秒添加到电影的录制时间来动态设置标签中的时间码。

例如电影文件将在加载时显示时间码为17:56:33,当播放开始时为秒,分钟和小时(17:56:34,17:56:35等等......) )应该根据播放的实际时间开始递增。

任何人都可以指导我朝着正确的方向前进...我已经在这个问题上突破了很长一段时间并且没有去过哪里......我很确定我必须使用Timespan但不知道如何做到这一点。

2 个答案:

答案 0 :(得分:0)

将此粘贴​​在计时器的tick事件中,并将间隔设置为1 ...

Dim controls As WMPLib.IWMPControls3 = axWindowsMediaPlayer1.Ctlcontrols
controls.currentPositionTimecode = "[00000]01:00:30.05"
Label1.Text = controls.currentPositionString

您需要更改的是“Label1”和“axWindowsMediaPlayer1”。您可能想要使用“[00000] 01:00:30.05”来获取所需的格式;这显示mm:ss。

答案 1 :(得分:0)

hii向媒体添加标签,将此代码添加到曲目栏的计时器

       ` TrackBar2.Maximum = AxWindowsMediaPlayer1.Ctlcontrols.currentItem.duration
        Label3.Text = AxWindowsMediaPlayer1.Ctlcontrols.currentPositionString
        TrackBar2.Value = AxWindowsMediaPlayer1.Ctlcontrols.currentPosition
        Label4.Text = AxWindowsMediaPlayer1.Ctlcontrols.currentItem.durationString `