Ich möchte in einem Xojo-HTML-Viewer eine MP4-Datei abspielen. Dazu übergebe ich dem Viewer mit loadPage den folgenden experimentellen Code:
<html>
<head></head>
<body>
<hr>VIDEO<hr>
<video width='100%' height='100%' controls>
<source src='test.mp4' type='video/mp4'>
</video>
</body>
</html>
Die Videodatei befindet sich im gleichen Ordner wie der Quellcode und das Debug-File. Es erscheint zwar ein HTML5-Video-Player, aber der ist leer. Daran ändert sich auch nichts, wenn ich dem Dateinamen eine “file://” (mit 1 bis 4 Slashes) voranstelle.
Ich habe dem Dateinamen auch bereits den nativePath als auch den ShellPath vorangestellt, ebenfalls ohne Erfolg.
Schreibe ich den Code direkt als HTML in eine Datei, funktioniert es beim Öffnen mit dem vorhandenen Chromium. Also ist hier wohl der HTML-Viewer von Xojo der Bösewicht - aber warum?
Ich würde ja auch gerne einfach nur einen Movieplayer benutzen, aber der gibt unter Linux (Raspian Bullseye 64Bit) nur ein schwarzes Rechteck von sich, ebenfalls ohne Film, obwohl das Video vom Desktop einfach durch Doppelklick abgespielt werden kann.
Hast du daran gedacht das base-folderitem zu setzen?
Ja, sonst würde es vermutlich unter MacOS nicht laufen, oder?
Lokale Dateien müssten per WebFile Verfügbar gemacht werden.
Oder von außen von https:// erreichbar sein, also per WebServer (Apache oder so) gestreamt werden.
Der Browser erlaubt nicht lokal auf Dateien auf dem Rechner zugreifen zu dürfen.
Sonst könnte jede Webseite ja Sachen von deiner Festplatte auslesen!
WebFile gibts nur bei Web-Projekten, oder? Dachte es geht um ein Desktop-Projekt, sicher bin ich mir aber nicht. Ein kleines Beispiel-Projekt mit dem Problem wäre schön.
Sorry, ich dachte es wäre eine Web App.
Also für eine Datei ohne Pfad findet, musst du bei LoadPage (source As String, base As FolderItem) eben ein Folderitem für den Ordner mitgeben, damit weitere Dateien gefunden werden.
Da die Zeit etwas drängt habe ich auch das Beispiel “single movie player” aus den Beispielen zum VLC-Plugin ausprobiert. Das Abspielen ansich funktioniert. Aber leider verändert sich unter Linux nach dem Start des Videos die Größe und Position des Fensters, egal was ich mache. Genau genommen, macht VLC einfach ein eigenes Fenster irgendwo in beliebiger Größe auf. Auch sind zusätzlich von mir angebrachte Controls nicht sichtbar - wie bekomme ich des weg?
Danke für Tips.
Wie hängt das mit der Ursprungsfrage zusammen?
Das was du da beschreibst klingt nach Wayland-Fenstermanager, den unterstützt Xojo noch nicht, nur x11 bzw xwayland. In Ubuntu kann man das vor dem Login umschalten.
Ich brauche eine Lösung, die Videos (nach Auswahl) unter Raspi-Linux in einer kontrollierten GUI-Umgebung abspielt (Video-Kiosk-System), egal auf welcher Basis. Zuerst habe ich den MoviePlayer versucht. Angeblich benötigt er Gstreamer. Hab ich installiert, Ergebnis: schwarzes Rechteck, kein Video. Die nächste Idee war, den HTMLViewer zu verwenden, Ergebnis: Probleme mit dem Pfad und (in diesem Falle) blödsinnige Sicherheits-Probeme. Nun die dritte Variante …
Manchmal stellt einen Linux auf eine ziemliche Geduldsprobe.
Immerhin ist beim VLC wenigstens etwas zu sehen. Ich werde mal untersuchen, ob man mit den Start-Parametern (im Beispielcode mit margs.append…) Größe und Position des Fensters irgendwie unter Kontrolle bekommt …
Hab’ da was gefunden: F27 Kommandozeile - Optionen - Informationen zum VLC Player und Forum - VLC Player Forum
So, es tut sich was. Mit den Parametern kan man tatsächlich einiges erreichen. Hier meine bisherigen Änderungen:
If TargetLinux Then
margs.append “–video-x=”+Str(main.Left + 20)
margs.append “–video-y=”+Str(main.top + 20)
margs.append “–width=”+Str(main.width - 40)
margs.append “–height=”+Str(main.Height - 100)
end if
Da gibt es zweiffellos noch Optimierungs-Bedarf, aber in diese Richung wird es gehen. Abgesehen von der Feinarbeit besteht noch die Notwendigkeit, dafür zu sorgen, dass das VLC-Fenster nach Ende des Videos oder nach Klick auf einen Stop-Button auch wieder verschwindet …
1 Like