Windows Media Player ActiveXコントロール(WMPlayer2)と2つのコマンドボタン、つまりcmd_PlayVideoとcmd_GetTimeCodeをExcelシートに追加しました。 Windows Media Playerでビデオを再生し、ビデオの再生中にcmd_GetTimeCodeボタンをクリックすると、ビデオのタイムコードをキャプチャしたいと思います。Windows Media Playerを使用したExcel VBA:ビデオタイムコードの取得中にランタイムエラーが発生する
IWMPControls3インターフェイスで 'currentPositionTimecode'プロパティが使用できるため、WMPlayer2.controlsからの戻り値をIWMPControls3インターフェイスにキャストしました。ただし、 'MsgBox controls.currentPositionTimecode'行は以下をスローします。
実行時エラー430:「クラスがオートメーションをサポートしていないか、または予期したインターフェイスをサポートしていません」
ようaudioLanguageCount、currentAudioLanguage、のCurrentItem、controls.getAudioLanguageID、getLanguageName、 とgetAudioLanguageDescription作業細かいとしてIWMPControls3インターフェイスの他の特性。
ビデオのタイムコードを取得するにはどうすればよいですか?
ここに2つのボタンがあります。
Private Sub cmd_PlayVideo_Click()
MsgBox Application.Sheets("Sheet1").Range("B2")
WMPlayer2.URL = Application.Sheets("Sheet1").Range("B2")
End Sub
Private Sub cmd_GetTimeCode_Click()
Dim controls As WMPLib.IWMPControls3
Dim Media As WMPLib.IWMPMedia
Set controls = WMPlayer2.controls
MsgBox controls.audioLanguageCount
MsgBox controls.currentAudioLanguage
If controls.isAvailable("currentItem") Then
Set Media = controls.currentItem
MsgBox Media.durationString
MsgBox Media.Name
MsgBox Media.SourceUrl
End If
MsgBox controls.getAudioLanguageID(1)
MsgBox controls.getLanguageName(1)
MsgBox controls.getAudioLanguageDescription(1)
MsgBox controls.currentPositionTimecode
End Sub