twb: Audio-Objekt

Liebe alle - mit Memory habe ich ein neues Game geschrieben (HTML 5). Das Spiel enthält auch Sounds, die ich in Javascript wie folgt steuere:

  
if (navigator.appCodeName=="Mozilla") type="ogg";  
else type="mp3";  
ton=new Audio("ton."+type);  
ton.load();  
ton.play();  

Das funktioniert in Chrome und Firefox soweit bestens, wie erwartet im MSIE nicht und unerwartet in Safari (Desktop, iPad, iPhone) ebensowenig. Hab' ich's mir zu einfach gemacht?

Herzlich, twb

  1. if (navigator.appCodeName=="Mozilla") type="ogg";
    else type="mp3";

    »Browsererkennung« über das navigator-Objekt ist nicht zuverlässig, du solltest besser zielgenaue Featureerkennung verwenden. In diesem Fall mit canPlayType:

    http://9elements.com/html5demos/audio/
    http://diveintohtml5.info/everything.html

    Mathias

    1. »Browsererkennung« über das navigator-Objekt ist nicht zuverlässig, du solltest besser zielgenaue Featureerkennung verwenden. In diesem Fall mit canPlayType:

      Bingo. Volltreffer. Mit grossmächtigem Dank! twb

  2. Hi,

    Das funktioniert in Chrome und Firefox soweit bestens, wie erwartet im MSIE nicht und unerwartet in Safari (Desktop, iPad, iPhone) ebensowenig. Hab' ich's mir zu einfach gemacht?

    Schreib doch den Audio Tag ins html (mit allen sourcen) und mach lediglich die Abspielsteuerung mit JS, etwa wie hier (etwas runter scrollen)

    Gruesse, Joachim

    --
    Am Ende wird alles gut.
    1. Schreib doch den Audio Tag ins html (mit allen sourcen) und mach lediglich die Abspielsteuerung mit JS,

      Möglich, aber die Methode .canPlayType() anstelle der Browserabfrage mittels .appCodeName hat das Problem bereits gelöst. Danke trotzdem!