0

私は、再生中のビデオの横にあるラベルにタイム コード (一種のタイム スタンプ) を表示する必要がある段階になったときに、非常に難しいと思われるプロジェクト用のビデオ プレーヤーを作成しようとしています。

プログラムの機能は・・・動画ファイル名には、動画ファイルの記録開始時刻が「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を使用する必要があると確信していますが、取得方法がわかりませんこれができました。

4

2 に答える 2

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 を表示します。

于 2013-10-14T19:18:39.533 に答える