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 *wink*

    Viele Grüße,
    Nupsi

  • 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:

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


    oder auch:

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

    Schöne Grüße,
    Klaus

Participate now!

Don’t have an account yet? Register yourself now and be a part of our community!