jw player: text nachladen

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • jw player: text nachladen

    Hallo

    Ich habe ein Problem:

    ich habe JW Player geholt. Jetzt wollte ich dynamisch Links einbinden.

    Vorgestellt habe ich es mir so, dass ich bei jedem Klick auf "Play" (über 20 Pro Seite) der Inhalt eines divs mit dem Player neu geladen wird, der schon neue Daten (Link) enthält.
    Hierbei habe ich eine Frage und ein Problem:

    Problem:

    Code ist:

    Quellcode

    1. <script type='text/javascript' src='content/player/swfobject.js'></script>
    2. <div id='mediaspace'>This text will be replaced</div>
    3. <script type='text/javascript'>
    4. var so = new SWFObject('content/player/player.swf','mpl','470','20','9');
    5. so.addParam('allowfullscreen','true');
    6. so.addParam('allowscriptaccess','always');
    7. so.addParam('wmode','opaque');
    8. so.addVariable('duration','33');
    9. so.addVariable('file','http://www.longtailvideo.com/jw/upload/bunny.mp3');
    10. so.write('mediaspace');
    11. </script>
    Alles anzeigen


    wenn ich jetzt das in eine Variable einspeise mit JS, bekomme ich ohne die Funktion gestartet zu haben

    Quellcode

    1. This text will be replaced
    2. "; }

    (Dieses ist im Code davor drin)

    Also es ist so, als ob der Text der Variable von HTML trotzdem interpretiert wird....

    so weise ich zu:

    Quellcode

    1. <script type="text/javascript">
    2. function Play_mp3(){
    3. document.getElementById('mp3_player').innerHTML="<script type='text/javascript' src='content/player/swfobject.js'></script>
    4. <div id='mediaspace'>This text will be replaced</div>
    5. <script type='text/javascript'>
    6. var so = new SWFObject('content/player/player.swf','mpl','470','20','9');
    7. so.addParam('allowfullscreen','true');
    8. so.addParam('allowscriptaccess','always');
    9. so.addParam('wmode','opaque');
    10. so.addVariable('duration','33');
    11. so.addVariable('file','http://www.longtailvideo.com/jw/upload/bunny.mp3');
    12. so.write('mediaspace');
    13. </script>";
    14. }
    15. </script>
    16. <div id="mp3_player">
    17. </div>
    Alles anzeigen


    habe schon versucht alle < zu escapen (mit \<)

    trotzdem passierte nichts, außer dass ein paar \ zu vorschein kamen

    Frage:

    wenn ich den Inhalt mit JavaScript einfüge, wird es doch nochmal geparst, oder? nicht dass der Code "nicht übernommen" wird^^

    Vielen Dank für die Hilfe :)
  • du solltest die bibliothek immer einbinden.. also ohne innerhtml etc

    Quellcode

    1. <script type='text/javascript' src='content/player/swfobject.js'></script>


    anschließend musst du nur noch container und swf im funktionsaufruf angeben
    z.b. mit einem funktionswrapper

    Quellcode

    1. function drawClip(swfpath, div) {
    2. var so = new SWFObject(swfpath,'mpl','470','20','9');
    3. so.addParam('allowfullscreen','true');
    4. so.addParam('allowscriptaccess','always');
    5. so.addParam('wmode','opaque');
    6. so.addVariable('duration','33');
    7. so.addVariable('file','http://www.longtailvideo.com/jw/upload/bunny.mp3');
    8. so.write(div);
    9. }


    willst du die divs wirklich dynamisch hinzufügen? Macht in meinen Augen aber keinen Sinn.

    Quellcode

    1. function drawClip(swfpath, div) {
    2. var elem = document.createElement('div');
    3. elem.id = div;
    4. document.getElementById('maindiv').appendChild();
    5. ...
    6. so.write(div);
    7. }
  • Ich entschuldige mich für 2. Doppelpost hier im Thread....

    ich habe es jetzt hinbekommen.

    jetzt wäre die nächste Frage: weiß jemand zufällig wie ich eine Playliste für den Player erstelle?

    muss man unbedingt eine xml datei schreiben? ist das schwer? wie binde ich die ein?

    Edit:

    habe gefunden wie die XML datei aussehen muss:

    Quellcode

    1. <feed>
    2. <title>Example ATOM playlist</title>
    3. <entry>
    4. <title>MP3 Audio with thumb</title>
    5. <link rel="alternate" type="text/html" href="http://www.bigbuckbunny.org/"/>
    6. <summary>
    7. Big Buck Bunny is a short animated film by the Blender Institute, part of the Blender Foundation.
    8. </summary>
    9. <media:group>
    10. <media:credit role="author">the Peach Open Movie Project</media:credit>
    11. <media:content url="files/bunny.mp3" type="audio/mpeg"/>
    12. <media:thumbnail url="files/bunny.jpg"/>
    13. </media:group>
    14. </feed>
    Alles anzeigen


    so. Thumbnail und so kann raus.

    Jetzt frage ich nach einem Rat: meint ihr ich soll einfach einen ordner anlegen und für jeden besucher eine XML liste anlegen und sie nach z.b. 24 stunden löschen oder überschreiben?

    ich habe es mir so vorgestellt, dass 20 lieder pro seite angezeigt werden und diese auch abgespielt werden. die 20
    und wenn der besucher auf seite 2 kommt, werden nächste 20 abgespielt. man könnte natürlich eine xml datei mit dem namen = ip adresse anlegen und danach löschen

    hat jemand bessere vorschläge?

    PS: Danke d0nut!!

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von Koljan777 ()

  • Koljan777 schrieb:

    hat jemand bessere vorschläge?


    Na klar, du siehst das viel zu statisch.
    Welche Sprachen beherrschst du denn? Du hast ja immerhin ein paar Posts im PHP Forum. Mit PHP kannst du die Playlist doch dynamisch für jeden Benutzer erstellen:

    Quellcode

    1. <?php
    2. header ("content-type: text/xml");
    3. if(!isset($_COOKIE['publicid'])) {
    4. $id = $_COOKIE['publicid'] = uniqid(rand(), true);
    5. setcookie("publicid", $id, strtotime('+ 1 day'));
    6. } else {
    7. $id = $_COOKIE['publicid'];
    8. }
    9. ?>
    10. <feed>
    11. <title>Example ATOM playlist for user <?=$id?></title>
    12. <?php
    13. // db query
    14. foreach($rows as $entry) {
    15. ?>
    16. <entry>
    17. <title><?=$entry->title?></title>
    18. <link rel="alternate" type="text/html" href="http://www.bigbuckbunny.org/"/>
    19. <summary>Big Buck Bunny is a short animated film by the Blender Institute, part of the Blender Foundation.</summary>
    20. <media:group>
    21. <media:credit role="author">the Peach Open Movie Project</media:credit>
    22. <media:content url="files/bunny.mp3" type="audio/mpeg"/>
    23. <media:thumbnail url="files/bunny.jpg"/>
    24. </media:group>
    25. </feed>
    26. </entry>
    27. <?php
    28. }
    29. ?>
    30. </feed>
    Alles anzeigen
  • Hi d0nut

    ich danke Dir vielmals für Deine Hilfe. nun weiter:

    Ich beherrsche PHP zum gr0ßen Teil würde ich sagen (3-4 Jahre Erfahrung). Javascript tue ich kennen, aber selten einsetzen, somit ständige rumfragerei :D und AJAX verwende ich nach Muster...

    Du meinst jetzt nicht IP als Name, sondern ID als Name verwenden und es aufm Rechner als Cookie hinterlegen. Weil ich meine ich muss ja trotzdem eine XML Datei auf dem Server ablegen, damit das swfobject da raus lesen kann, stimmts? oder kann ich irgendwie in php Datei mit XML rumcoden? (hast ja in deinem Beispiel schon gezeigt, dass es wohl gehen soll)

    Dann einmal die nächste Frage, wie sage ich dem Player bescheid, wo er lesen soll? Und kennst du zufällig genau diesen Player und Playlisten? ich wüsste jetzt überhaupt nicht wie ich eine Playlist da einbinden soll. einfach die XML Datei als "file" einbinden?

    Gruß, Niko