Seite 1 von 2

[SOLVED] Mehrere JWplayer auf JS-Basis im Thread möglich?

Verfasst: 21.04.2011 17:34
von Testusmania99
Hallöchen!

Ja, diesmal sagt der Titel eigentlich schon alles. Naja, fast. Denn es sollte W3C valide sein!
Zur kurzen Erklärung: Ich denke nahezu jeder kennt bereits den JWplayer von longtail. Dort oben rechts gibt es den kleinen Link Wizard.
So, da kann man nun alles einstellen und schaut dazu bitte ganz unten zur Codebox. Dort gibt es die object/embed als auch die Javascript Methode.

Mein Problem: Ich habe etliche Videos im flv und mp4 Format als auch einige MP3 Dateien, welche ich mit diesem Player in meinem Forum (3.0.8 ) abspielen lasse.
Pro Thread kommen da leicht mal 10 Videos zusammen etc. pp. und das klappt ja auch mit der alternativen object/embed Methode.
Nur diese ist ja nicht W3C valide, so wie ich den Code von longtail benutzen muss.
Klar könnte ich einen validen object code nehmen - doch dann kann ich keine Feinstellungen am Player selbst vornehmen. (verhalten des players etc.)
Obwohl ich mit der "einfachen" Methode sämtliche YouTube Videos valide bekommen habe.
Aber das war ja auch leicht. :D

Also würde ich nun gerne die Javascript Variante ausprobieren, welche zwar auch funktioniert, aber nur einmal pro Thread.
Denn wie man in der Codebox auf Longtail erkennen kann, braucht die Js Methode eine eindeutige ID.
Wenn man jetzt also weiterdenkt fällt einem auf, dass man bei 10 Videos in einem Thread immer und immer wieder dieselbe ID hat und somit stets nur das "erste Video" des Beitrages abgespielt wird.
Uff, ja, das ist nervig.

Wie also könnte ich phpbb 3.0.8 so dahin bewegen, dass ich vielleicht eine ID pro Player doppelt zufällig erstellen lassen kann?
Es gibt ein Mod für "random numbers", aber da schaffe ich es leider nicht den Mod so umzubauen, dass er die reinzufällig erstellte Nummer auch in die IDs kopiert.

Code: Alles auswählen

<script type="text/javascript">document.write(Math.floor((Math.random()*((1000)+1))+1000));</script>
Gibt es denn keine Möglichkeit ein auf Javascript basierten Player öfters im Thread aufzurufen?
Für jede kleine Hilfestellung wäre ich seeehr dankbar!
Vielen Dank!

Liebe Grüße, Testusmania99

Re: Mehrere JWplayer (longtail) auf JS-Basis im Thread mögli

Verfasst: 21.04.2011 20:12
von BNa
Poste einfach mal Deinen kompletten BBCode, dann bekommst Du eine Lösung.
Kannst aber auch eine class aus der id machen.

Re: Mehrere JWplayer (longtail) auf JS-Basis im Thread mögli

Verfasst: 22.04.2011 14:44
von Testusmania99
Hallo!

Danke dass Du Dich meiner annehmen möchtest.
Nun, das mit der class ist mir auch in den Sinn gekommen und natürlich funktioniert es nicht, da die ID dafür zuständig ist den Player anzeigen zu lassen.
Das ist es ja gerade und daher echt nervig. -.-"

Nun, aber probiere es gerne selbst.
Hier die HTML-Ersetzung:

Code: Alles auswählen

<script type='text/javascript' src='http://example.org/pfad_zum_player/swfobject.js'></script>

<div id='mediaspace'></div>

<script type='text/javascript'>
  var so = new SWFObject('http://example.org/pfad_zum_player/jwplayer.swf','mpl','550','400','9');
  so.addParam('allowfullscreen','true');
  so.addParam('allowscriptaccess','always');
  so.addParam('wmode','opaque');
  so.addVariable('file','{URL}');
  so.addVariable('backcolor','333333');
  so.addVariable('frontcolor','999999');
  so.addVariable('lightcolor','cccccc');
  so.addVariable('screencolor','000000');
  so.addVariable('volume','100');
  so.addVariable('controlbar','over');
  so.addVariable('repeat','always');
  so.write('mediaspace');
</script>
Ich habe einst versucht mit dem bereits erwähnten "random numbers" Script eine zufällige Zahl erzeugen zu lassen, so dass es das script automatisch in die Player ID einfügt. Aber leider funktioniert das überhaupt nicht und wenn, dann habe ich 2 unterschiedliche Zahlen.

Vielleicht können wir es ja bald lösen?
Wenn noch weitere Info's benötigt werden, diene ich damit gerne. Einfach fragen. ;)

Liebe Grüße, Testusmania99

Re: Mehrere JWplayer (longtail) auf JS-Basis im Thread mögli

Verfasst: 22.04.2011 15:27
von BNa
Verlinke mal bitte die aktuelle editor.js Deines Styles, dann hast Du es morgen..
Es ist nämlich leichter, wenn ich es Dir einbaue und dann zurückverlinke, als Hin- und Rückfragen.

Re: Mehrere JWplayer (longtail) auf JS-Basis im Thread mögli

Verfasst: 22.04.2011 15:33
von Testusmania99
Hi!

Oha, Du bist ja echt fix. ;)
Ich bin gerade dabei in der ID "mediaspace" mit folgendem Snippet herumzubasteln:

Code: Alles auswählen

<?php $post-id ?>
Aber leider wird dabei nur das Snippet im Quelltext (Thread) angezeigt, nicht jedoch die variable id selbst.
Doch auch wenn würde es mir nichts bringen, da ich dann zwar mehrere Videos im Thread, jedoch nicht im Beitrag selbst anzeigen lassen könnte.
Nun gut, ich baue ganz auf Dich! ;)

Ich schicke Dir gleich eine PN mit dem gesamten Code. Hoffe das ist in Ordnung so!?

Vielen Dank und liebe Grüße, Testusmania99

EDIT:
PN is raus ;)
Und hab vergessen zu erwähnen, dass es die, durch mich leicht veränderte, editor.js aus der BBcodeBox3 ist. :roll:

Re: Mehrere JWplayer (longtail) auf JS-Basis im Thread mögli

Verfasst: 22.04.2011 15:46
von BNa
Kein Problem, das macht es sogar einfacher.

Erstens musst Du Deinen BBCode verändern, geht nicht anders :wink:
Zweitens hat php nichts im Template zu suchen, die Lösung mit der post_id lässt ferner nur ein valides Video pro Post zu.

Öffne editor.js

Finde

Code: Alles auswählen

// >>>ALL_OTHER_ONE_CLICK_TAGS>>>     
Davor füge ein

Code: Alles auswählen

  else if (bbopen == '[jwf_player=]')
    {
    var RAND = Math.floor(Math.random() * 1000000 + 500000);
    insert_text('[jwf_player=' + RAND + ']' + '[/jwf_player]');
    } 

BBCode

Code: Alles auswählen

[jwf_player={NUMBER}]{URL}[/jwf_player] 
Ersetzung

Code: Alles auswählen

<script type='text/javascript' src='http://example.org/pfad_zum_player/swfobject.js'></script>

<div id='mediaspace{NUMBER}'></div>

<script type='text/javascript'>
  var so = new SWFObject('http://example.org/pfad_zum_player/jwplayer.swf','mpl','550','400','9');
  so.addParam('allowfullscreen','true');
  so.addParam('allowscriptaccess','always');
  so.addParam('wmode','opaque');
  so.addVariable('file','{URL}');
  so.addVariable('backcolor','333333');
  so.addVariable('frontcolor','999999');
  so.addVariable('lightcolor','cccccc');
  so.addVariable('screencolor','000000');
  so.addVariable('volume','100');
  so.addVariable('controlbar','over');
  so.addVariable('repeat','always');
  so.write('mediaspace{NUMBER}');
</script>
Fertig

Re: Mehrere JWplayer (longtail) auf JS-Basis im Thread mögli

Verfasst: 22.04.2011 16:34
von Testusmania99
Hallo!

Danke Dir sehr für Deine Hilfe. Der Code funktioniert so wie er ist. Naja fast. {NUMBER} fehlt noch unten bei der s0 variable.
Aber das ist nicht schlimm.

Gut, er funktioniert zwar so mit dem neuen Tag, jedoch wenn ich nun dieses in den bestehenden FLV bbcode einbauen will, wills nicht gehen.
Hättest Du da vielleicht noch einen Tipp parat, wie ich es also in den bestehenden Code einfügen kann?

Code: Alles auswählen

// >>>FLV>>>1
   else if (bbopen == '[flv]')
	{
	    var Error = '';
		var FLV = prompt('FLV Link eingeben\r\nBeispiel: http://www.google.de/video/clip.flv' , '');
		if (!FLV) {
        Error = "Du hast keinen FLV Link eingegeben";
		}
		if (Error) {
        alert("Fehler: "+Error);
        return;
        }
		if (FLV) {
			insert_text(bbopen + FLV + bbclose);
		}
		else {
			insert_text(bbopen + bbclose);
		}
	}
Meine Kenntnisse reichen nicht ganz aus um Deinen Code dort einzubauen. :oops:
Vielen Dank!

Lg, Testusmania99

EDIT:
Boah *hust* ich schaffs einfach nit. ^^ Egal wie ich was wohin kopiere, entweder fehlen die Dialoge dann oder aber er generiert die Zahl nicht. Ufff..., doch das muss ja irgendwie funktionieren. :(

Re: Mehrere JWplayer (longtail) auf JS-Basis im Thread mögli

Verfasst: 23.04.2011 13:39
von BNa

Code: Alles auswählen

// >>>FLV>>>1
   else if (bbopen == '[jwf_player=]')
    {
        var Error = '';
        var FLV = prompt('FLV Link eingeben\r\nBeispiel: http://www.google.de/video/clip.flv' , '');
        if (!FLV) {
        Error = "Du hast keinen FLV Link eingegeben";
        }
        if (Error) {
        alert("Fehler: "+Error);
        return;
        }
        if (FLV) {

    var RAND = Math.floor(Math.random() * 1000000 + 500000);
    insert_text('[jwf_player=' + RAND + ']' + FLV + '[/jwf_player]');

        }
        else {
            insert_text(bbopen + bbclose);
        }
    } 
Oder wenn der BBCode partout flv heissen soll
(muss aber jeweils mit Gleichheitszeichen sein flv=)
Siehe BBCode hier viewtopic.php?p=1231299#p1231299

Code: Alles auswählen

[flv={NUMBER}]{URL}[/flv] 

Code: Alles auswählen

// >>>FLV>>>1
   else if (bbopen == '[flv=]')
    {
        var Error = '';
        var FLV = prompt('FLV Link eingeben\r\nBeispiel: http://www.google.de/video/clip.flv' , '');
        if (!FLV) {
        Error = "Du hast keinen FLV Link eingegeben";
        }
        if (Error) {
        alert("Fehler: "+Error);
        return;
        }
        if (FLV) {

    var RAND = Math.floor(Math.random() * 1000000 + 500000);
    insert_text('[flv=' + RAND + ']' + FLV + '[/flv]');

        }
        else {
            insert_text(bbopen + bbclose);
        }
    }  
Du musst dann natürlich den ersten Code, den ich Dir gegeben habe, wieder aus der editor.js ausbauen
viewtopic.php?p=1231299#p1231299

Re: Mehrere JWplayer (longtail) auf JS-Basis im Thread mögli

Verfasst: 23.04.2011 14:13
von Testusmania99
Hallöchen!

Boah is des goil - Alles funktioniert. Ich habe lediglich den bbcode "jwf_player" entfernt, mit meinem vorhandenen "flv" getauscht und schon geht alles. Endlich!!!
Du bist echt klasse. Danke Dir!!!
This document was successfully checked as XHTML 1.0 Transitional!
DANKEEE! ;)

Liebe Grüße, Testusmania99

Edit:
Oh ich seh grad, Du hast editiert. :D
Ja, genauso hab ichs auch gemacht. Danke nochmal! ;)

EDIT #2:
Achja und ich habe noch das "=" entfernen müssen, damit ich die kompatibilität zu meinen bereits unzählig eingefügten Videos erhalten kann.
Das klappt echt alles wie am Schnürchen. Bestens!

Re: Mehrere JWplayer (longtail) auf JS-Basis im Thread mögli

Verfasst: 23.04.2011 15:00
von BNa
Normal kein Problem. Alten BBCode belassen, damit werden alle "Alten" angezeigt und den neuen BBCode halt "ab jetzt".
Wie hast Du es denn gelöst, ohne den BBCode mit =? Also insgesamt. Würde mich mal interessieren.