Ich schreibe eine HTML-Anwendung, die eine interaktive Simulation eines Systems erstellt. Die Daten für die Simulation werden von einem anderen Tool generiert, und es gibt bereits eine sehr große Menge an Altdaten.
Einige Schritte in der Simulation erfordern, dass wir "Voice-Over" -Aclips von Audio abspielen. Ich konnte keinen einfachen Weg finden, dies in mehreren Browsern zu erreichen.
Soundmanager2 kommt dem, was ich brauche, ziemlich nahe, aber es werden nur MP3-Dateien abgespielt, und die alten Daten können auch einige WAV-Dateien enthalten.
Hat jemand andere Bibliotheken, die helfen könnten?
javascript
audio
cross-browser
cross-platform
dhtml
Jake Stevenson
quelle
quelle
Antworten:
Sie müssen ein Plug-In wie Real Audio oder QuickTime einbinden, um die WAV-Datei zu verarbeiten, aber dies sollte funktionieren ...
//====================================================================== var soundEmbed = null; //====================================================================== function soundPlay(which) { if (!soundEmbed) { soundEmbed = document.createElement("embed"); soundEmbed.setAttribute("src", "/snd/"+which+".wav"); soundEmbed.setAttribute("hidden", true); soundEmbed.setAttribute("autostart", true); } else { document.body.removeChild(soundEmbed); soundEmbed.removed = true; soundEmbed = null; soundEmbed = document.createElement("embed"); soundEmbed.setAttribute("src", "/snd/"+which+".wav"); soundEmbed.setAttribute("hidden", true); soundEmbed.setAttribute("autostart", true); } soundEmbed.removed = false; document.body.appendChild(soundEmbed); } //======================================================================
quelle
Wenn Sie Prototype verwenden, verfügt die Scriptaculous-Bibliothek über eine Sound-API . jQuery scheint auch ein Plugin zu haben.
quelle
Dacracots Code ist sauber Basic Dom, aber vielleicht ohne einen zweiten Gedanken geschrieben? Natürlich überprüfen Sie zuerst das Vorhandensein einer früheren Einbettung und speichern die doppelten Einbettungserstellungszeilen.
var soundEmbed = null; //===================================================================== function soundPlay(which) { if (soundEmbed) document.body.removeChild(soundEmbed); soundEmbed = document.createElement("embed"); soundEmbed.setAttribute("src", "/snd/"+which+".wav"); soundEmbed.setAttribute("hidden", true); soundEmbed.setAttribute("autostart", true); document.body.appendChild(soundEmbed); }
Kam hier über die Gedanken hinweg, während ich nach einer Lösung für eine ähnliche Situation suchte. Leider stirbt mein Browser Mozilla / 5.0 (X11; U; Linux i686; en-US; rv: 1.9.0.15) Gecko / 2009102814 Ubuntu / 8.04 (hardy) Firefox / 3.0.15, wenn ich dies versuche.
Nach der Installation der neuesten Updates stürzt Firefox immer noch ab, die Oper bleibt am Leben.
quelle
Ich glaube, dass der einfachste und bequemste Weg darin besteht, den Sound mit einem kleinen Flash-Clip abzuspielen. Ich schätze, dass es keine JavaScript-Lösung ist, aber es ist der einfachste Weg, um Ihr Ziel zu erreichen
Einige zusätzliche Links aus der vorherigen ähnlichen Frage :
quelle
Sie können das HTML5-
<audio>
Tag verwenden.quelle
<audio>
Tag funktioniert nicht in IE8-, Android 2.2-, iOS Safari 3.2- oder Opera Mini: caniuse.com/#feat=audioDie Antwort von Dacracot hat mir gefallen ... hier ist eine ähnliche Lösung in jQuery:
function Play(sound) { $("#sound_").remove() $('body').append('<embed id="sound_" autostart="true" hidden="true" src="/static/sound/' + sound + '.wav" />'); }
quelle
<audio controls> <source src="horse.ogg" type="audio/ogg"> <source src="horse.mp3" type="audio/mpeg"> Your browser does not support the audio element. </audio>
Weitere Informationen finden Sie unter http://www.w3schools.com/html/html5_audio.asp .
quelle
Wenn Sie Mootools verwenden, gibt es das MooSound-Plugin .
quelle
Es gibt eine weitaus einfachere Lösung, als auf Plug-Ins zurückgreifen zu müssen. IE hat eine eigene bgsound-Eigenschaft und es gibt eine andere Möglichkeit, wie Sie es für alle anderen Browser verwenden können. Schauen Sie sich mein Tutorial hier an = http://www.andy-howard.com/how-to-play-sounds-cross-browser-including-ie/index.html
quelle
Für eine browserübergreifende Lösung mit WAV-Dateien würde ich vorschlagen, ein
<audio>
Tag als Standard<embed>
festzulegen und dann die Lösung zu wählen, die @dacracot zuvor hier vorgeschlagen hat, wenn sich der Benutzer im IE befindet. Sie können dies leicht mit einer kleinen Suche hier in SO überprüfen.quelle