HTML5音频标签-更改源不自动播放
我正在尝试更改当前播放的音频源。但它不是在播放这首歌。调用HTML5音频标签-更改源不自动播放,html,audio,Html,Audio,我正在尝试更改当前播放的音频源。但它不是在播放这首歌。调用audio.load()后,将发送资源的GET请求,这将导致HTTP 200 OK。在调用audio.play()之前,我尝试了间隔2秒的设置,但这也不能解决我的问题。控制台没有给出任何错误消息 <audio id="audioPlayer" controls="controls" autoplay> <source id="audioSource" src="audio/myFirstSong.mp3" typ
audio.load()
后,将发送资源的GET请求,这将导致HTTP 200 OK
。在调用audio.play()
之前,我尝试了间隔2秒的设置,但这也不能解决我的问题。控制台没有给出任何错误消息
<audio id="audioPlayer" controls="controls" autoplay>
<source id="audioSource" src="audio/myFirstSong.mp3" type="audio/mpeg" />
</audio>
function updateSource(songName) {
songName = "audio/" + escape(songName) + ".mp3";
var audio = document.getElementById('audioPlayer');
var source = document.getElementById('audioSource');
source.src = songName;
audio.load();//GET 200 OK
audio.play(); //Doesn't play
//Can't press the Play button in the controls either
}
函数更新资源(songName){
songName=“audio/”+转义(songName)+“.mp3”;
var audio=document.getElementById('audioPlayer');
var source=document.getElementById('audioSource');
source.src=songName;
audio.load();//获取200确定
audio.play();//不播放
//也不能按控件中的播放按钮
}
我没有对原始代码做太多更改:
至controls=“controls”
controls
- 音频源已更改
- 添加了一个按钮和一个事件侦听器来调用
函数updateSource()
更新
函数更新资源(songName){
歌曲名=”https://glpjt.s3.amazonaws.com/so/av/“+escape(歌曲名)+.mp3”;
var audio=document.getElementById('audioPlayer');
var source=document.getElementById('audioSource');
source.src=songName;
audio.load();//获取200确定
audio.play();//不播放
//也不能按控件中的播放按钮
}
var btn1=document.getElementById('btn1');
btn1.addEventListener('click',函数(e){
var songName=“pf正义”;
更新资源(歌曲名称);
},假);
您是否尝试过直接播放url?如果只使用controls
控件,则controls=“controls”
更稳定。是的,在浏览URL时会播放音频文件。它也可以在windows media player中播放。嗯,将它改为songName=“”+escape(songName)+“.mp3”,对我来说仍然不起作用。您的代码段运行得很好。我所做的更改不应该在功能上造成太大的差异……令人困惑。@Reinard通过严格检查您的代码,我唯一想说的是您的问题是您还没有调用updateSource()
。尝试在函数声明后添加updateSource(songName)
。我将mp3文件放在web服务器上,现在就可以使用了。我猜问题出在VisualStudio/IIS express上:是的,VS是一个过于复杂的IDE。我从来没有进入C++,因为我害怕使用VS在校园实验室。