Javascript 如何使自定义音频播放器播放在线托管的歌曲

Javascript 如何使自定义音频播放器播放在线托管的歌曲,javascript,html,jquery,css,html5-audio,Javascript,Html,Jquery,Css,Html5 Audio,我想使用自定义音频播放器播放在线托管的音轨 例如,我希望能够为音频播放器提供一个链接,如 example.com/path/to/track.mp3 它应该解析并播放它。我可以播放本地托管的音轨 这是我遇到问题的代码。我有一个音频对象,指向声音轨迹所在的本地文件夹。当它不是本地托管时,我不知道如何处理它 当我用URL替换路径时,音频播放器就会冻结 $(函数(){ var计数=0; var音频; //隐藏暂停 $(“#暂停”).hide(); initAudio($(“#播放列表li:第一个孩子”

我想使用自定义音频播放器播放在线托管的音轨

例如,我希望能够为音频播放器提供一个链接,如 example.com/path/to/track.mp3 它应该解析并播放它。我可以播放本地托管的音轨

这是我遇到问题的代码。我有一个音频对象,指向声音轨迹所在的本地文件夹。当它不是本地托管时,我不知道如何处理它

当我用URL替换路径时,音频播放器就会冻结

$(函数(){
var计数=0;
var音频;
//隐藏暂停
$(“#暂停”).hide();
initAudio($(“#播放列表li:第一个孩子”);
函数初始化音频(元素){
var song=element.attr('song');
var cover=element.attr(“cover”);
var artist=element.attr('artist');
var title=element.text();
var temp=parseFloat($('#卷滑块').val()/100);
//创建音频对象
音频=新音频('../media/books/'+歌曲);
audio.volume=温度;
addEventListener(“loadedmetadata”,函数(){
分钟=parseInt(audio.duration/60);
秒=parseInt(audio.duration%60);
如果(秒<10){
秒='0'+秒;
};
如果(分钟<10){
分钟='0'+分钟;
};
$(“#duration').html(分钟+”:“+秒);
});
$(“#自动播放”)。单击(功能(){
如果(计数==1){
$(“#自动播放”).css(“背景色”、“黑色”);
计数=0;
}否则{
$(“#自动播放”).css(“背景色”、“rgb(0,0255)”);
计数=1;
}
});
audio.addEventListener('end',函数(){
如果(计数>0){
var next=$('#playlist li.active').next();
如果(next.length==0){
next=$(“#播放列表李:第一个孩子”);
}
initAudio($(next));
音频播放();
showCurrentTime();
}
});
//插入曲目信息
$('.artist')。文本(artist);
$('.title')。文本(title);
$('#duration').text();
//插入歌曲封面。注意:下面的路径是相对于
//html“img.cover”元素不是这个js文件。
$('img.cover').attr('src','../media/books/cover/'+cover);
$(“#playlist li”).removeClass('active');
元素addClass('active');
};
});

您可以避免CORS错误。 对于你们当地的发展来说,这很容易。
如果你想投入生产,那就难了一点。带有配乐的服务器必须接受您的应用。

控制台中是否出现错误?可能是CORS之类的。您好,brandit是的,我这么做是说从源null访问(链接)处的xmlhttprequest被CORS策略阻止。我在网络方面没有什么经验,也不知道为什么会这样。有没有更简单的方法来实现这一点?感谢我的目标是扫描并列出给定链接中的所有配乐。然后创建一个播放列表,并能够播放它们。再次感谢你,我现在将查看链接。服务器属于archive.org,如果你是这个意思的话,他们确实有一个api