ich ein Windows Media Player-ActiveX-Steuerelement (WMPlayer2) und zwei Befehlsschaltflächen hinzugefügt habe, nämlich, cmd_PlayVideo und cmd_GetTimeCode auf einem Excel-Sheet. Ich möchte ein Video im Windows Media Player wiedergeben und den Timecode des Videos erfassen, wenn ich während der Wiedergabe des Videos auf die Schaltfläche cmd_GetTimeCode klicke.Excel VBA mit Windows Media Player: Laufzeitfehler beim Abrufen der Video-Timecode
seit den currentPositionTimecode Eigentum in IWMPControls3 Schnittstelle verfügbar ist, habe ich den Rückgabewert von WMPlayer2.controls auf die IWMPControls3-Schnittstelle umgewandelt. Die Zeile 'MsgBox controls.currentPositionTimecode' löst jedoch aus:
Laufzeitfehler 430: "Klasse unterstützt keine Automatisierung oder unterstützt keine erwartete Schnittstelle
Die anderen Eigenschaften der IWMPControls3 Schnittstelle wie audioLanguageCount, currentAudioLanguage, currentItem, controls.getAudioLanguageID, getLanguageName, und getAudioLanguageDescription funktionieren.
Wie kann ich den Timecode des Videos bekommen?
Hier ist mein Code in 2 Tasten.
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