Udo*_*Udo 19 javascript html5 base64
能通过以下方式用javascript播放声音,
var snd = new Audio('sound.wav');
snd.play();
Run Code Online (Sandbox Code Playgroud)
这会播放所需的声音,但有时它会加载缓慢或甚至根本无法加载,所以我将声音编码在base 64中并尝试以这种方式播放.
var splash = {
prefix: "data:audio/wav;base64,",
sound: [ "*base64 string here*" ] };
var snd = new Audio(splash);
snd.play();
Run Code Online (Sandbox Code Playgroud)
但声音没有播放,有没有办法解决呢?
Pau*_* S. 42
这看起来不像是为HTMLAudioElement/使用Audio构造函数的正确方法.<audio>
轻微调整
var snd = new Audio("data:audio/wav;base64," + base64string);
snd.play();
Run Code Online (Sandbox Code Playgroud)
如果它在控制台中工作但不在脚本中工作,则可能会收集垃圾,在这种情况下它会保留范围
var Sound = (function () {
var df = document.createDocumentFragment();
return function Sound(src) {
var snd = new Audio(src);
df.appendChild(snd); // keep in fragment until finished playing
snd.addEventListener('ended', function () {df.removeChild(snd);});
snd.play();
return snd;
}
}());
// then do it
var snd = Sound("data:audio/wav;base64," + base64string);
Run Code Online (Sandbox Code Playgroud)
小智 6
var snd = new Audio("data:audio/x-wav;base64, <URI data>");
snd.play();
Run Code Online (Sandbox Code Playgroud)
无需将splash声明为对象变量.
Base64转换可以从以下网址轻松完成:https: //dopiaza.org/tools/datauri/index.php
| 归档时间: |
|
| 查看次数: |
30095 次 |
| 最近记录: |