如何在html5/JS中只预加载音频文件的一部分
How to preload only part of a audio file in html5/JS?
我在一个网页中有多个音频文件。我希望页面一加载就可以播放所有内容,但一次完全预加载所有内容太重,也没用。所以我只想预加载一定量的音频,并在播放完后加载其余的音频(类似于我们在YouTube上看到的行为)。
我如何在HTML5页面上做到这一点(可能使用Javascript)?
您可以尝试一些技巧,比如在onload
侦听器中播放文件的前10%。
然而,根据经验,我发现浏览器无论如何都只预加载音频内容的开头。(如果他们预加载任何东西:例如iOS和mobilechrome都拒绝预加载。)例如,在Firefox中,你可以检查HTTP请求,你会发现它们是不覆盖整个文件的部分内容请求。
您可以编辑这些文件,这样您就有了剪切的版本。在页面加载时加载这些文件,然后通过ajax调用加载全尺寸文件。
HTML:
<div id="myAudioFilesDiv">
<audio controls>
<source src="horse.ogg" type="audio/ogg">
<source src="horse.mp3" type="audio/mpeg">
Your browser does not support the audio element.
</audio>
</div>
js:
//(document.ready) code
var refresh = true;
data = {
'action': 'manage_reports'
};
var url = 'includes/ajax_reports.php';
$.ajax({
type: 'post',
cache: false,
url: url,
data: data,
error:function(result)
{
$("#myAudioFilesDiv").html('failed to load full sized music files');
},
success:function(result)
{
//load full sizes music files here
$("#myAudioFilesDiv").html('<audio controls>
<source src="horse.ogg" type="audio/ogg">
<source src="horse.mp3" type="audio/mpeg">
Your browser does not support the audio element.
</audio> ');
if(refresh) location.reload();
}
});
还可以看看这篇文章:http://msdn.microsoft.com/en-us/library/ie/gg589489%28v=vs.85%29.aspx。
相关文章:
- 如何在html5/JS中只预加载音频文件的一部分
- 加载音频的Javascript库无法工作
- HTML,JS:加载音频是否需要在移动浏览器上进行用户交互
- 如何在加载音频源文件时使用 js/jquery 来处理事件
- 媒体元素 - 动态加载音频
- 在流星应用程序中加载音频文件
- 使用附加组件 SDK 加载音频文件并使用 Aurora.js 播放
- 如何在向用户显示内容之前以html预加载音频
- 如何延迟播放HTML5音频,但忽略加载音频文件的延迟
- 通过导航栏中的单个播放按钮,在电子书中的每一页加载音频文件
- 预加载音频文件/事件
- JavaScript预加载音频
- 如何在播放之前完全加载音频
- Javascript中预加载音频的问题
- 动态加载音频Javascript
- 动态改变源后加载音频元素
- audio.js:是否可以在特定时间加载音频
- 从本地内存加载音频并播放精灵
- 在javascript中完全预加载音频
- 从另一个域加载音频