Sie sind nicht angemeldet.

1

Donnerstag, 10. August 2017, 14:52

URL und ALTURL funktionieren in HTML5 nicht korrekt

Hi Klaus,

sorry für die vielen Meldungen, doch ich erstelle gerade einen neuen Rundgang und stoße dabei auf allerlei Probleme.

Aktuell schaffe ich es nicht den Videoplayer via addplugin/addhotspot zu erstellen - zumindest nicht so, wie es bisher der Fall war:
addplugin(video);
set(plugin[video].url,plugins/videoplayer.swf);
set(plugin[video].alturl,plugins/videoplayer.js);
set(plugin[video].videourl,videos/large.mp4|webm/large.webm);


Auch die Anpassung an die neuen Befehle funktioniert nicht:
addplugin(video);
set(plugin[video].url.flash,plugins/videoplayer.swf);
set(plugin[video].url.html5,plugins/videoplayer.js);
set(plugin[video].videourl,videos/large.mp4|webm/large.webm);


Erst wenn ich entweder die Zeile für Flash komplett entferne ODER ich folgenden Aufruf verwende, wird der HTML5-Videoplayer korrekt geladen:
if(device.flash,set(plugin[video].url,plugins/videoplayer.swf),set(plugin[video].url,plugins/videoplayer.js));
set(plugin[video].videourl,videos/large.mp4|webm/large.webm);


Den Videoplayer als Plugin direkt zu erstellen, ist indes kein Problem und es wird je nach Version korrekt entweder der Flash- oder HTML5-Videoplayer geladen:
<plugin name="video"
url.flash="plugins/videoplayer.swf"
url.html5="plugins/videoplayer.js"
videourl="videos/large.mp4|webm/large.webm"
/>


Die zusätzliche if-Abfrage ist zwar kein Thema, aber ohne wäre es doch wieder schöner. Außerdem hats eine ganze Weile gebraucht, bis ich auf den Kern des Problems gestoßen bin ;-)

Viele Grüße,
Nupsi

2

Donnerstag, 10. August 2017, 18:35

Hi,

das '.html5' und '.flash' sind 'Filter' für XML Attribute - das kann nur in statischem XML Code verwendet werden:
https://krpano.com/docu/xml/#devicechecksforattributes

Für dynamischem Code stehen die if() Action oder der Ternary Operator (if ? then : else) zu Verfügung.
Hier z.B. noch eine Möglichkeit:

Quellcode

1
calc(plugin[video].url, device.html5 ? 'plugins/videoplayer.js' : 'plugins/videoplayer.swf');

oder auch:

Quellcode

1
calc(plugin[video].url, 'plugins/videoplayer.' + (device.html5 ? 'js' : 'swf'));


Schöne Grüße,
Klaus