我想知道如何在所有页面上“连续”播放音频文件。因此,如果音频文件播放了20秒,那么当在另一个页面上导航时,它将从它停止的位置继续播放。我也试图在离开我的主页后减少音量。任何提示或建议我都会感激!谢谢= D
<audio src="songforsite.mp3" loop="true" autoplay="true" controls>
Unsupported in Firefox
</audio>
答案 0 :(得分:21)
是的,有可能。试试这个:
<audio preload="auto" src="a.mp3" loop="true" autobuffer>
Unsupported in Firefox
</audio>
<script>
function setCookie(c_name,value,exdays)
{
var exdate=new Date();
exdate.setDate(exdate.getDate() + exdays);
var c_value=escape(value) + ((exdays==null) ? "" : "; expires="+exdate.toUTCString());
document.cookie=c_name + "=" + c_value;
}
function getCookie(c_name)
{
var i,x,y,ARRcookies=document.cookie.split(";");
for (i=0;i<ARRcookies.length;i++)
{
x=ARRcookies[i].substr(0,ARRcookies[i].indexOf("="));
y=ARRcookies[i].substr(ARRcookies[i].indexOf("=")+1);
x=x.replace(/^\s+|\s+$/g,"");
if (x==c_name)
{
return unescape(y);
}
}
}
var song = document.getElementsByTagName('audio')[0];
var played = false;
var tillPlayed = getCookie('timePlayed');
function update()
{
if(!played){
if(tillPlayed){
song.currentTime = tillPlayed;
song.play();
played = true;
}
else {
song.play();
played = true;
}
}
else {
setCookie('timePlayed', song.currentTime);
}
}
setInterval(update,1000);
</script>
答案 1 :(得分:11)
如果你真的导航到另一个页面,那么你将无法真正连续播放。
有三种常见的方法:
所有方法都有其优点/缺点。 Popup可能是最容易实现的,并且具有最少的缺点(与帧相比)。
我也试图在离开我的主页后减少音量。
然后抓住对“home”链接/按钮的任何点击,并调用volume
元素的audio
方法,参数值范围为0到1以设置音量。
答案 2 :(得分:4)
嗯......一个干净利落的方式来实现它,是soundcloud.com和spoify.com通过ajaxifing所有页面的方式
修复页面并通过ajax更改页面内容,并更改网址以给用户带来导航的错觉 这不是最简单或最快的解决方案,但它是最干净的解决方案..远离对浏览器不兼容性的恐惧