gpt4 book ai didi

javascript - 使用 HTML5 文件 API 在浏览器中创建音频列表

转载 作者:行者123 更新时间:2023-11-27 22:41:59 24 4
gpt4 key购买 nike

我不想用 HTML5 创建音乐播放器。我已经从桌面创建了拖放文件,这非常简单。现在它正在创建一个包含歌曲名称的无序列表,但我不知道如何捕获歌曲,所以当用户按下它时,它就会播放。

这是我目前所拥有的:

var dropbox = document.getElementById("dropbox")
dropbox.addEventListener("drop", function (evt) {
evt.preventDefault();
evt.stopPropagation();

var files = evt.dataTransfer.files;
for (var i = 0, f; f = files[i]; i++) {
var li = document.createElement('li');
li.innerHTML = "<li>" + escape(f.name) + "</li>";
document.getElementById('songs').appendChild(li);
}

console.log("Dropped File");
}, false);

效果很好,只是需要一些帮助才能进行下一步。我在想应该先把文件上传到服务器才能播放,但是如果有一个解决方案,不占用空间,只是在浏览器窗口打开时就很好!

有什么建议吗?

最佳答案

给你。我只在最新的 chrome 中测试过它,但它应该在 IE9、FF3.6+ 和 safari 中工作。

这使用 HTML5 文件阅读器和音频播放器,并且都在这 1 个 HTML 文件中完成

基础知识来自https://developer.mozilla.org/en/DOM/FileReaderhttp://www.w3.org/2010/05/video/mediaevents.html

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<title>Audio Player Test</title>
<script type="text/javascript">
function SelectAudio(files) {
var file = files[0];
if (file.type.match(/audio.*/)) {
var reader = new FileReader();
reader.onload = function(d) {
var e = document.createElement("audio");
e.src = d.target.result;
e.setAttribute("type", file.type);
e.setAttribute("controls", "controls");
e.setAttribute("autoplay", "true");
document.getElementById("container").appendChild(e);
};
reader.readAsDataURL(file);
}
}
</script>
</head>
<body>
<input type="file" onchange="SelectAudio(this.files)" />
<div id="container"></div>
</body>
</html>

编辑:保存为 HTML 文件时,必须通过本地或远程网络服务器访问它。当您直接打开 html 文件时,HTML5 文件阅读器似乎不起作用。

我在 http://jsfiddle.net/KY8Kg/ 上发布了一份副本

关于javascript - 使用 HTML5 文件 API 在浏览器中创建音频列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10375582/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com