DOM-Objekt - Nachfrage an Zwenn
29.06.2019 15:47:52
stef26
falls du dich wieder hier im Forum um Hilfestellungen bemühst...
Ich hätte noch eine Nachfrage zu deiner Hilfe die du mir gegeben hast.
Du schreibst ich soll ein DOM Objekt aus meinem eingebundenen WebBrowser nehmen?
Ich hab die Funktion in eine Zelle geschrieben. Die URL und den Wert true eingegeben. Dachte das das ist, was die Funktion von mir will um die Laufzeit auszugeben.
Zeigt mir aber nicht`s an. Ich denke ich mach da einfach was falsch.
Könntest du mir nochmal erklären wie ich die Funktion genau anwende?
Die Funktion, über die Du die Gesamtzeit oder die verstrichene Zeit eines Videos aus dem YTP _ auslesen kannst sieht folgendermaßen aus. Sie erwartet ein DOM-Objekt, dass Du aus Deinem eingebetteten Webbrowser nimmst. Über einen Boolean-Schalter wählst Du aus, ob Du die Gesamtzeit oder die bisher verstrichene Zeit von der Funktion bekommen willst:
Public Function YouTubeSpielZeitHolen(ytpDocument As Object, vergangenOderGesamt As Boolean) As _
_
_
String
Dim knotenWurzel As Object
Dim spielZeit As String
Dim splitArray() As String
'Zeitstempel aus dem YouTubePlayer auslesen
'Das entsprechende div-Tag verwendet als einziges die Klasse "ytp-progress-bar "
'Dann folgen einige Attribute, von denen wir den Wert von aria-valuetext brauchen
'[div class="ytp-progress-bar "
' tabindex = "0"
' role = "slider"
' aria-Label = "Schieberegler für Suche"
' aria-valuemin = "0"
' aria-valuemax = "211"
' aria-valuenow = "1"
' aria-valuetext = "0:00 von 3:31"
' style="touch-action: none;" ]
Set knotenWurzel = ytpDocument.getElementsByClassName("ytp-progress-bar ")(0)
If Not knotenWurzel Is Nothing Then
'Wurde das div-Tag gefunden, direkt das Attribut mit Zeitstempel
'über Split() in seine Bestandteile zerlegen
'Leerzeichen = Standard-Trennzeichen (Delimeter)
splitArray = Split(knotenWurzel.getAttribute("aria-valuetext"))
'Die Vergangene-Spielzeit des Videos steht im ersten Element des Arrays
'Die Gesamt-Spielzeit des Videos steht im letzten Element des Arrays
'Je nachdem, was gewünscht wird, wurde für die Auswahl false oder true
'an diese Funktion übergeben
If vergangenOderGesamt Then
'Für true = vergangene Spielzeit im ersten Arry-Element
spielZeit = splitArray(LBound(splitArray))
Else
'Für false = gesamte Spielzeit im letzten Arry-Element
spielZeit = splitArray(UBound(splitArray))
End If
End If
'Aufräumen
Set knotenWurzel = Nothing
'Spielzeit zurückgeben
YouTubeSpielZeitHolen = Trim(spielZeit)
End Function