<Embed> mit Javascript steuern
Lone
- javascript
0 Jörg Peschke0 Lone
1 Gernot Back0 Lone0 wahsaga0 Lone0 Gernot Back0 Lone
0 Gernot Back
Hallo,
folgendes Problem:
Ich baue wie folgt einen Film in meine Seite ein:
<EMBED SRC="http://www.studio-baumann.de/video/aaa.wmv" AUTOSTART="true" NAME="Video" WIDTH="320" HEIGHT="240"></EMBED>
Jetzt möchte ich gerne, dass ein anderer Film im gleichen Verzeichnis (nehmen wir mal an bbb.wmv) bei Click auf einen Link abgespielt wird. Folgendes habe ich probiert, funktioniert aber nicht. Ich glaube ich übersehe irgendwas.... aber was?
<A HREF="Javascript:document.embeds['Video'].url('http://www.studio-baumann.de/video/bbb.wmv')">
</A>
<A HREF="Javascript:document.embeds['Video'].src='http://www.studio-baumann.de/video/bbb.wmv'; alert(document.embeds['Video'].src)"></A>
Bei letzterem habe ich mal ein ALERT dahintergesetzt um zu testen, ob er den Pfad überhaupt übernimmt. Das funktioniert aber.
Und folgendes geht auch nicht:
<A HREF="Javascript:document.embeds['Video'].stop()">STOP</A>
Das Bild verschwindet zwar, aber die timeline läuft weiter und der Ton auch....
Danke und liebe Grüße, Lone.
Tach,
Hab keine Erfahrung mit "document.embeds" aber aus dem hohlen Bauch heraus würde ich folgendes vermuten:
So wie ich das verstehe, änderst du mit "document.embeds['Video'].src nur die Quelle des Embed-Tags.
Damit das aber z.B. auch im IE richtig ausgetauschtt wird, müsstest du auch den entsprechenden param-Tag ändern - sonst dein JavaScript nur unter Browsern, die den EMBED-Tag zum einbinden von Objekten verwenden (also Gecko-Browser wie Mozilla, Firefox und Netscape z.B.)
Viele Grüße,
Jörg
Hmm, ja, aber ich arbeite hier mit Firefox. Im IE habe ich es auch probiert, funktioniert da lieder auch nicht.
Lone.
Hallo Lone,
<A HREF="Javascript:document.embeds['Video'].url('http://www.studio-baumann.de/video/bbb.wmv')">
</A>
<A HREF="Javascript:document.embeds['Video'].stop()">STOP</A>
Möglicherweise solltest du vor das ".stop()" ein ".controls" schreiben oder die "Stop()" groß schreiben.
Das Neuladen eines anderen Videos ist wohl nur über das Controls-Objekt möglich:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/wmplay10/mmp_sdk/playerurl.asp
Vielleicht solltest du deinen Media Player auch lieber über das <object>-Element statt über das <embed>-Element einbinden oder mit beiden einnindungsarten verschachtelt, damit es auch noch in anderen Browsern äuft. In jedem Fall empfiehlt es sich dabei, auch den MIME-Type des zu ladenden Videos angeben. Der Javascript-Zugriff wird dann natürlich noch komplizierter.
Gruß Gernot
Hallo Gernot,
erstmal danke für die Tipps!
Ich wollte das ganze schon als Object einbauen, aber zum testen, dachte ich wäre es mit dem Einzeiler einfacher... ;)
<A HREF="Javascript:document.embeds['Video'].stop()">STOP</A>
Möglicherweise solltest du vor das ".stop()" ein ".controls" schreiben oder die "Stop()" groß schreiben.
Leider funktionieren diese Varianten auch nicht. :(
Noch jemand eine Idee? Kann doch nicht so schwierig sein, oder doch? Naja, anscheinend ja doch... ;))
Gruß, Lone.
hi,
Möglicherweise solltest du vor das ".stop()" ein ".controls" schreiben oder die "Stop()" groß schreiben.
Leider funktionieren diese Varianten auch nicht. :(
damit bist du nicht mal auf die hälfte des von Gernot vorgeschlagenen eingegangen.
was ist mit dem verlinkten tipp?
auch ausprobiert?
ergebnis?
gruß,
wahsaga
Hallo wahsaga,
was ist mit dem verlinkten tipp?
auch ausprobiert?
ergebnis?
habe ich wie folgt ausprobiert, klappt aber auch nicht:
<!-- Create an INPUT control to get a file path from the user. -->
<INPUT Type = "TEXT" ID = "inputURL">
<!-- Create a BUTTON control to execute the script. -->
<INPUT Type = "BUTTON" ID = "openMedia" VALUE = "Open Media"
onClick = "
/* Specify the URL obtained from user input. */
document.embeds['Video'].URL = inputURL.value;
/* Start the Player. */
document.embeds['Video'].controls.play();
">
Das document.embeds['Video'] habe ich auch mit nur "Video." probiert.
Übrigens scheint firefox ein Anzeigeproblem zu haben. Den im Originalposting angegebenen "Stop"-Link auftretenden Bildausfall (Ton läuft weiter) gibt es im IE nicht.
Gruß, Lone.
Hallo Lone,
Übrigens scheint firefox ein Anzeigeproblem zu haben. Den im Originalposting angegebenen "Stop"-Link auftretenden Bildausfall (Ton läuft weiter) gibt es im IE nicht.
Mit einem Anzeigeproblem hat das eben wahrscheinlich gerade nichts zu tun, sondern damit, dass die Methode stop() (kleingeschrieben) von Firefox als Javascript-Methode verstanden wird. Du willst hier aber eigentlich eine großgeschriebene MediaPlayer6-Methode Stop() aufrufen.
Gruß Gernot
Hallo Gernot,
ich glaube da liegt doch irgendwo ein Problem vor, manchmal muss man den Browser erst Minimieren und dann wieder Maximieren, bis er ein Bild anzeigt.
Gruß, Lone.
Mit einem Anzeigeproblem hat das eben wahrscheinlich gerade nichts zu tun, sondern damit, dass die Methode stop() (kleingeschrieben) von Firefox als Javascript-Methode verstanden wird. Du willst hier aber eigentlich eine großgeschriebene MediaPlayer6-Methode Stop() aufrufen.
Gruß Gernot
Hallo Lone,
vielleicht gibt dir auch dieser Thread ein paar Anregungen:
http://forum.de.selfhtml.org/archiv/2005/4/t106376/#m659965
Ich finde es immer noch am einfachsten, wenn man einen anderen Film laden will, nicht nur diesen, sondern das gesamte Plugin neu zu laden. Anders lässt sich das wohl auch mit dem Media-Player 6 gar nicht realisieren. Du könntest also ein separates Dokument in dem der eine Film über den Media-Player eingebunden ist, gegen ein anderes Dokument, in dem der anderer Film entsprechend eingebunden ist, komplett z.B. in einem (I)Frame austauschen.
Gruß Gernot