我想知道我做错了什么?
$('.player_audio').click(function() {
if ($('.player_audio').paused == false) {
$('.player_audio').pause();
alert('music paused');
} else {
$('.player_audio').play();
alert('music playing');
}
});
Run Code Online (Sandbox Code Playgroud)
如果我点击"player_audio"标签,我似乎无法启动音轨.
<div class='thumb audio'><audio class='player_audio' src='$path/$value'></audio></div>
Run Code Online (Sandbox Code Playgroud)
我知道我做错了什么或者我要做些什么才能让它发挥作用?
我有两个音频文件,必须一个接一个地播放.为此,我使用XHR下载了这两个文件
var xhr = new XMLHttpRequest();
xhr.open('GET', fileURL, true);
xhr.responseType = 'arraybuffer';
xhr.onload = function () {
data = new Uint8Array(xhr.response);
//... other handling code
};
Run Code Online (Sandbox Code Playgroud)
并从他们那里构建了一个Blob
var blob = new Blob([data], {type: 'video/mp4'})
这些我用来构建Blob URL
var url = URL.createObjectURL(blob)
然后将其注入<audio>标签.(audioDOM.src = url;)
此过程适用于Chrome和Firefox.但IE11有时会给我一个问题,它会显示以下通知:
通过关闭为其创建的blob来撤消一个或多个blob URL.这些URL将不再解析,因为已释放支持URL的数据.
然而,最奇怪的部分是它对第一个文件起作用(在IE中),但对第二个文件不起作用.它们都对整个过程使用相同的代码,只需使用不同的代码即可fileURL.这两个文件都存在,已正确下载并已记录到控制台进行验证.
我试图在构造blob之前复制数据,但似乎并不重要:错误仍然存在.
有谁知道导致问题的原因以及如何解决问题?
在sbgoran之后编辑:整个脚本在单个文档上运行,该文档未被重新加载.我仍然感到困惑,为什么会这样.我确实设法通过在音频无法加载时循环和创建新URL来创建变通方法,但这不是一个可行的解决方案.奇怪的是,上述方法随机失败:有时URL在加载到<audio>标签时可用,有时则不是.
我正在制作一个HTML5音频标签,我想在歌曲结束时触发一个事件.这有可能与jQuery?
我的jQuery代码是:
$(document).ready(function(){
var music = new Audio("sample.mp3");
$('#play').click(function(){
music.play();
});
$('#pause').click(function(){
music.pause();
});
});
Run Code Online (Sandbox Code Playgroud)
我的HTML5是:
<input type="button" value="Play" id="play" />
<input type="button" value="Pause" id=pause" />
Run Code Online (Sandbox Code Playgroud)