Javascript:can';不能播放wav文件
基于StackExchange的代码,我编写了打开wav文件的代码。wav文件本身是一个有效的文件,因为它可以正确地与我的Python程序配合使用。但是javascript函数不起作用。声音文件与我的html文件位于同一文件夹中Javascript:can';不能播放wav文件,javascript,audio,Javascript,Audio,基于StackExchange的代码,我编写了打开wav文件的代码。wav文件本身是一个有效的文件,因为它可以正确地与我的Python程序配合使用。但是javascript函数不起作用。声音文件与我的html文件位于同一文件夹中 游戏桌 暂停表 退出表 var音频; 函数setupAudio(){ var audio=新音频('plus1_071016_Alex.WAV'); } 函数playAudio(){ 音频播放(); } 函数pauseAudio(){ audio.pa
游戏桌
暂停表
退出表
var音频;
函数setupAudio(){
var audio=新音频('plus1_071016_Alex.WAV');
}
函数playAudio(){
音频播放();
}
函数pauseAudio(){
audio.pause();
}
函数cancelAudio(){
audio.pause();
sound.currentTime=0;
}
任何帮助都将不胜感激。您没有入门点。。。什么是调用setupAudio()?这会让你振作起来
试验
//var audio=新音频(“plus1_071016_Alex.WAV”);
//var audio=新音频(“http://glpjt.s3.amazonaws.com/so/av/a12.mp3");
var audio=新音频(“https://s3.amazonaws.com/audio-experiments/examples/elon_mono.wav");
函数playAudio(){
音频播放();
}
函数pauseAudio(){
audio.pause();
}
函数cancelAudio(){
audio.pause();
audio.currentTime=0;
}
播放/恢复表
暂停表
退出表
查看您脚本的第一行:
var audio;
function setupAudio(){
var audio = new Audio('plus1_071016_Alex.WAV');
}
您正在将具有相同名称的变量的全局变量audio屏蔽到setupAudio函数中。这样,辅助功能playAudio、pauseAudio和cancelAudio将无法访问音频对象。我假设在代码中的某个地方,而不是示例中显示的地方,您将调用setupAudio函数
一个快速而真实的解决方案:将var关键字删除到函数中,瞧:您污染了您的全局环境,但您的代码应该可以工作
我将使用一个简单的模块模式,遵循稍微不同的路线:
css
我更喜欢将样式放在头部远离元素标记的地方:它们会分散我的注意力
<style>
#play_or_pause_or_exit > button { display: inline-block; }
</style>
PlayerNow是一个IIFE(立即调用的函数表达式),它创建一个对象,用play、pause和stop方法封装音频资源,以控制资源
请注意,音频url现在位于声明的底部,一旦定义了生成函数,它就会被加载,正如您可能从函数表达式名称猜到的那样
全球环境仍然受到污染,但仅仅是一个封装了辅助功能和资源的对象。单点访问vs四个函数和一个资源变量。您有链接吗?由于
setupAudio
函数中的var
关键字,此AudioElement将仅在此函数的范围内声明,然后任何人都无法访问。如果要填充全局audio
变量,请删除此关键字。谢谢。当我修复我的代码时,它仍然不起作用。我需要做的是将我的wav文件转换成mpg文件,所有的工作都正常。
var audio;
function setupAudio(){
var audio = new Audio('plus1_071016_Alex.WAV');
}
<style>
#play_or_pause_or_exit > button { display: inline-block; }
</style>
<div id="play_or_pause_or_exit">
<button onclick="Player.play()"
type="button"
id="play"
disabled>Play/Resume table</button>
<button onclick="Player.pause()"
type="button"
id="pause"
disabled>Pause table</button>
<button onclick="Player.stop()"
type="button"
id="cancel"
disabled>Exit tables</button>
</div>
var Player = (function (audiourl) {
var audio = new Audio(audiourl);
[].forEach.call(
document.querySelectorAll("#play_or_pause_or_exit > button"),
function(x) {
x.disabled=false;
});
return {
"play": function() { audio.play(); },
"pause": function() { audio.pause(); },
"stop": function() {
audio.pause();
audio.currentTime = 0;
},
};
})("plus1_071016_Alex.WAV");