Wie bekomme ich direkte Verbindung von Remote-Video von eingebetteter URL in eine URL in Android mit JSoup?

8

Ich hatte zuvor die Frage gestellt, wie die eingebettete URL für eine Videodatei abgerufen werden kann und erfolgreich durchgeführt wurde. Jetzt habe ich ein anderes Problem. Die JSON-Antwort für eine WU-API-Webcam-Antwort gibt folgende URL:

https://www.wunderground.com/webcams/cadot1/902/show.html

Unter Verwendung von JSoup und der Antwort zu meinem anfänglichen Problem konnte ich diesen eingebetteten Link bekommen:

https://www.wunderground.com/webcams/cadot1/902/video.html?month=11&year=2016&filename=current.mp4

Beim Versuch, das Video von dieser URL zu einem VideoView zu "streamen", habe ich den Fehler "Video kann nicht abgespielt werden" erhalten. Beim Betrachten der Quelle für diesen Link habe ich festgestellt, dass die Videodatei, die abgespielt werden muss, nicht in html, sondern in Javascript referenziert wird. Wie kann ich den direkten Link für die Videodatei erhalten, die abgespielt werden muss? Verwenden Sie JSoup oder einen anderen Prozess?

Die Quelle für die URL https://www.wunderground.com/webcams/cadot1/902/video.html?month=11&year=2016&filename=current.mp4 zeigt Folgendes für die benötigte Videodatei in einer <script> Klammer:

  

url: "//icons.wunderground.com/webcamcurrent/c/a/cadot1/902/current.mp4?e=1480377508"

Ich verwende JSoup, um die eingebettete URL für das Video von der Antwort-URL wie folgt abzurufen:

%Vor%

Bitte beachten Sie, dass ich dies für jedes JSONObject im Antwort-Array tun muss.

    
Steve C. 29.11.2016, 05:44
quelle

1 Antwort

0

So können Sie die Datei holen:

( Hinweis : Der Extraktionsteil funktioniert nur mit dem aktuellen HTML der Site und wenn sich das ändert, funktioniert es möglicherweise nicht richtig!)

%Vor%

[Ausgabe: https://icons.wunderground.com/webcamcurrent/c/a/cadot1/902/current.mp4?e=1481246112 ]

Jetzt können Sie die Datei erhalten, indem Sie .ignoreContentType(true) angeben, um org.jsoup.UnsupportedMimeTypeException und .maxBodySize(0) zu vermeiden, um das Limit für die Dateigröße zu entfernen.

%Vor%

Ich weiß nicht, ob Sie es in Android spielen können oder nicht, aber ich denke, Sie können es mit org.apache.commons.io.FileUtils speichern (Ich habe es in Java SE getestet, aber nicht in der Android-Entwicklungsumgebung.)

%Vor%     
Omid 09.12.2016, 01:19
quelle

Tags und Links