如何在播放之前完全加载音频
How to load audio completely before playing?
在播放音频之前,我必须完全加载音频。播放器应该在完全加载音频后自动播放音频。不应该有暂停按钮/用户不能暂停它。这是我的代码,但不能这样做。
超文本标记语言:
<audio class="audio-player" onloadeddata="myOnLoadedData()" onprogress="myOnProgress()" src="<?php echo $audio_link;?>" controls>
JavaScript:
function myOnLoadedData() {
console.log('Loaded data');
$('audio.audio-player').attr('autoplay','autoplay');
}
function myOnProgress(){
console.log('downloading');
}
或者还有其他球员符合我的要求吗?
尝试使用XMLHttpRequest
返回音频文件的Blob
,new Audio()
,.load()
,.play()
var request = new XMLHttpRequest();
request.open("GET", "/path/to/audio/file/", true);
request.responseType = "blob";
request.onload = function() {
if (this.status == 200) {
var audio = new Audio(URL.createObjectURL(this.response));
audio.load();
audio.play();
}
}
request.send();
我使用@guest271314的方法来执行一个函数,加载对象中的每个音乐链接/URL。
function LoadSounds(obj,ch,ca){
(function(r){
var i,
lo=0, // number of sounds loaded
len=0, // number of sounds to load
con={}; // an object with the sounds loaded
for(i in obj){
len++ // increase the number of sounds to load
}
for(i in obj){
(function(i){
r=0;
r=new XMLHttpRequest();
r.open("GET",obj[i],true);
r.responseType="blob";
r.onload=function(){
if(this.status==200){
lo++
con[i]=new Audio(URL.createObjectURL(this.response));
con[i].load();
ch(obj[i]);
if(lo==len)ca(con)
r=undefined;
}
}
r.send();
})(i);
}
i=undefined;
})(0);
}
压缩。。。!
function LoadSounds(n,o,e){!function(t){var i,s=0,d=0,u={};for(i in n)d++;for(i in n)!function(i){t=0,t=new XMLHttpRequest,t.open("GET",n[i],!0),t.responseType="blob",t.onload=function(){200==this.status&&(s++,u[i]=new Audio(URL.createObjectURL(this.response)),u[i].load(),o(n[i]),s==d&&e(u),t=void 0)},t.send()}(i);i=void 0}(0)}
使用示例。。。!
// Note that these musics in my example aren't in a valid link
var MyMusics={
Music1:'http://example.com/music.ogg',
BestEver:'http://example.com/bestever.ogg'
};
LOAD_SOUNDS(
MyMusics, // Musics object
function(){alert("+1 loaded");}, // function when a link music is loaded
function(){e.BestEver.play();} // function when all musics from links were loaded
);
相关文章:
- 如何在html5/JS中只预加载音频文件的一部分
- 加载音频的Javascript库无法工作
- HTML,JS:加载音频是否需要在移动浏览器上进行用户交互
- 如何在加载音频源文件时使用 js/jquery 来处理事件
- 媒体元素 - 动态加载音频
- 在流星应用程序中加载音频文件
- 使用附加组件 SDK 加载音频文件并使用 Aurora.js 播放
- 如何在向用户显示内容之前以html预加载音频
- 如何延迟播放HTML5音频,但忽略加载音频文件的延迟
- 通过导航栏中的单个播放按钮,在电子书中的每一页加载音频文件
- 预加载音频文件/事件
- JavaScript预加载音频
- 如何在播放之前完全加载音频
- Javascript中预加载音频的问题
- 动态加载音频Javascript
- 动态改变源后加载音频元素
- audio.js:是否可以在特定时间加载音频
- 从本地内存加载音频并播放精灵
- 在javascript中完全预加载音频
- 从另一个域加载音频