FF und Mediaplayer steuern

  • Ich möchte einen Mediaplayer über eigene Buttons ansteuern.
    Im unten angezeigten Beispiel soll ein playbutton gedrückt werden und der eingebttete player gestartet werden.
    In Internetexplorer funzt alles aber nicht beim FF.
    Es gibt dann folgende Fehlermeldung:
    document.MediaPlayer.Play is not a function

    Hat einer von euch ne idee ?

    Hier is der Code:

    <script language="JavaScript" type="text/javascript">
    <!--
    function Play()
    {
    document.MediaPlayer.Play();
    }
    -->
    </script>

    <OBJECT ID="MediaPlayer"
    WIDTH="160" HEIGHT="25"
    CLASSID="CLSID:22D6F312-B0F6-11D0-94AB-0080C74C7E95"
    TYPE="application/x-oleobject">
    <PARAM NAME="FileName" VALUE="streams/listen.asx">
    <PARAM NAME="autostart" VALUE="false">
    <PARAM NAME="showcontrols" VALUE="false">
    <embed ID="MediaPlayer2" TYPE="application/x-mplayer2"
    SRC="streams/listen.asx"
    WIDTH="160" HEIGHT="25"
    hide="true" AUTOSTART="0" SHOWCONTROLS="0">
    </embed>
    </OBJECT>
    <img name="play" src="images/play.gif" onclick="Play();">
    MFG Dago0100

  • Du verwendest die MS-only-document.all-Syntax. Damit zumindest die genannte Fehlermeldung nicht mehr auftaucht, solltest du document.getElementById('MediaPlayer').Play() schreiben. Allerdings ist mir dann auch noch unklar wo die Funktion Play() herkommen soll, kenne mich mit der Behandlung von Objekten nicht so aus.

    Mozilla/5.0 (Windows; U; Windows NT 5.1; de; rv:1.8.1.1) Gecko/20061204 Firefox/2.0.0.1

    Eine Theorie sollte so einfach wie möglich sein, aber nicht einfacher. (A. Einstein)

  • Ich habe den Code folgendermaßen abgeändert:

    <script language="JavaScript" type="text/javascript">
    <!--
    function Play()
    {
    document.getElementById('MediaPlayer').Play();
    }

    Fehler bei FF:
    document.getElementById('MediaPlayer').Play(); is not a function

    Play is die Javascriptfunktion die ich aufrufe

  • mmhhh. Das Object-Tag mit der ID MediaPlayer ist ja glaub in IE-only Schreibweise gehalten. Dafür ist dann das Embed mit der ID MediaPlayer2 für die anderen Browser vorhanden.

    In deinem Script gehst du aber immer davon aus, dass das Plugin die ID MediaPlayer hat. Das kann also nur mit IE was werden. Ich würde es mal so versuchen:

    Code
    function play() {
      var object = document.getElementById("MediaPlayer");
      var embed = document.getElementById("MediaPlayer2");
      if(object.Play)
        object.Play();
      else if(embed.Play)
        embed.Play();
      else
        alert("Fehler!");
    }

    Ich kenne mich mit dem Scripten von Plugins aber nicht sonderlich aus. Vielleicht heißt es bei Firefox gar nicht "Play()". Oder es geht gar nicht...

  • erstmal danke für die antwort.
    leider bekomme ich nun immer die FEHLER-Messagebox

    habe nun nen javaskriptfehler:
    Fehler: [Exception... "'Die Erlaubnis für das Lesen der Eigenschaft XULElement.accessKey wurde verweigert' when calling method: [nsIDOMXULLabelElement::accessKey]" nsresult: "0x8057001e (NS_ERROR_XPC_JS_THREW_STRING)" location: "JS frame :: http://127.0.0.1/test.php :: Play :: line 20" data: no]

  • habe gerade nochmal getestet nach neustart vom firefox.
    es kommt kein fehler mehr, aber unter FF startet er auch net den player

    IE läuft nun auch net und hat JS-Fehler
    Objekt unterstützt diese Eigenschaft oder Methode nicht
    Fehler in dieser zeile ->if(object.Play)

  • läuft das hier?

  • die \n mußte ich wegnehmen. die mochte der nicht.
    Anzeige unter Firefox:
    Fehler!!!!
    TypeError:object.Play is not a function
    TypeError:embed.Play is not a function

    IE läuft.

  • Ich habe es so gelöst


    <script language="JavaScript" type="text/javascript">
    <!--

    function Play()
    {
    document.getElementById('music').innerHTML='<object width="300" height="45" '
    +'classid="CLSID:6BF52A52-394A-11d3-B153-00C04F79FAA6" '
    +'codebase="http://activex.microsoft.com/activex/contro…sion=5,1,52,701" '
    +'standby="Loading Microsoft Windows Media Player components..." type="application/x-oleobject">'
    +'<param name="url" value="module/streams/listen.asx">'
    +'<param name="uiMode" value="full">'
    +'<param name="autoStart" value="true">'
    +'<param name="loop" value="true">'
    +'<embed type="application/x-mplayer2" '
    +'pluginspage="http://microsoft.com/windows/mediaplayer/en/download/" '
    +'showcontrols="true" uimode="full" width="300" height="45" '
    +'src="streams/listen.asx" autostart="true" loop="true">'
    +'</object>';
    // roter button play
    // normaler button stop
    document.play.src = "images/play_red.gif";
    document.stop.src = "images/stop.gif";
    }
    function Stop()
    {
    document.getElementById('music').innerHTML='<object width="300" height="45" '
    +'classid="CLSID:6BF52A52-394A-11d3-B153-00C04F79FAA6" '
    +'codebase="http://activex.microsoft.com/activex/contro…sion=5,1,52,701" '
    +'standby="Loading Microsoft Windows Media Player components..." type="application/x-oleobject">'
    +'<param name="url" value="">'
    +'<param name="uiMode" value="full">'
    +'<param name="autoStart" value="true">'
    +'<param name="loop" value="true">'
    +'<embed type="application/x-mplayer2" '
    +'pluginspage="http://microsoft.com/windows/mediaplayer/en/download/" '
    +'showcontrols="true" uimode="full" width="300" height="45" '
    +'src="" autostart="true" loop="true">'
    +'</object>';
    // roten button stop
    // normaler button play
    document.play.src = "images/play.gif";
    document.stop.src = "images/stop_red.gif";

    }
    }
    -->
    </script>


    <body>
    <img name="stop" src="images/stop_red.gif" alt="Radio C'est La Vie-Stream stoppen" border=0 onclick="Stop();">
    <img name="play" src="images/play.gif" alt="Radio C'est La Vie-Stream abspielen" border=0 onclick="Play();">
    <div id="music">
    <object width="300" height="45"
    classid="CLSID:6BF52A52-394A-11d3-B153-00C04F79FAA6"
    codebase="http://activex.microsoft.com/activex/contro…sion=5,1,52,701"
    standby="Loading Microsoft Windows Media Player components..." type="application/x-oleobject">
    <param name="url" value="">
    <param name="uiMode" value="full">
    <param name="autoStart" value="true">
    <param name="loop" value="true">
    <embed type="application/x-mplayer2"
    pluginspage="http://microsoft.com/windows/mediaplayer/en/download/"
    showcontrols="true" uimode="full" width="300" height="45"
    src="" autostart="true" loop="true">
    </object>
    </div>
    </body>