html网页中加入音乐播放器,[HTML5]简单网页本地音乐播放器[通俗易懂]

html网页中加入音乐播放器,[HTML5]简单网页本地音乐播放器[通俗易懂]既然HTML5提出与本地交互方便,就想写个HTML5的本地音乐播放器。一开始问题主要集中在怎么读取本地文件路径,我想肯定可以用JS实现去操作本地文件(因为node.js很容易实现读取本地文件,但是原生JS怎么写不太清楚),不过简单一点就用这样只能读取一个,我想做的是最好是把一个文件夹中的都取出来,然后参考http://sapphion.com/2011/11/html5-folder-upload…

大家好,又见面了,我是你们的朋友全栈君。

既然HTML5提出与本地交互方便,就想写个HTML5的本地音乐播放器。一开始问题主要集中在怎么读取本地文件路径,我想肯定可以用JS实现去操作本地文件(因为node.js很容易实现读取本地文件,但是原生JS怎么写不太清楚),不过简单一点就用这样只能读取一个,我想做的是最好是把一个文件夹中的都取出来,然后参考http://sapphion.com/2011/11/html5-folder-upload-with-webkitdirectory/ 给file加了个webkitdirectory属性,谷歌浏览器下可以实现,发现目前为止只有谷歌浏览器支持文件夹获取,所以其他浏览器只能为file添加一个 multiple属性 ,可以一次添加多个文件,我参考了一下http://blog.csdn.net/goodnew/article/details/7355619,不过试了几个浏览器发现文章中为file添加的mozdirectorydirectory,并未发现有什么用,更坚信了只有谷歌才支持文件夹获取。后面主要问题就是获取文件的URL,播放器的话用,详细看代码,附上链接http://download.csdn.net/detail/popezong/8790939

#songlist {

border: 1px;

background-color: #c4c4c4;

}

.odd {

background-color: #ffffff;

}

.cur {

background-color: #444444;

}

ul {

list-style-type: none;

margin: 0px;

width: 400px;

}

ul li {

list-style-type: none;

display: block;

width: 100%;

background: #ccc;

}

ul li:hover {

background: #999;

}

您的浏览器不支持 audio 标签。

style=”display: none” accept=”audio/mpeg” />

var input = document.getElementById(‘files’);

var songlist = document.getElementById(‘songlist’);

var song = songlist.innerHTML;

var myAuto = document.getElementById(‘myaudio’);

input.onchange = function(e) {

var files = e.target.files; // FileList

var count = 0;

for (var i = 0, f; f = files[i]; ++i) {

//file have .name

var path = f.name || f.webkitRelativePath ;

if (/.*\.mp3$/.test(path)) {

var url;

if (window.createObjectURL) {

url = window.createObjectURL(files[i])

} else if (window.createBlobURL) {

url = window.createBlobURL(files[i])

} else if (window.URL && window.URL.createObjectURL) {

url = window.URL.createObjectURL(files[i])

} else if (window.webkitURL

&& window.webkitURL.createObjectURL) {

url = window.webkitURL.createObjectURL(files[i])

}

if (count % 2 === 0) {

song += ‘

+ path + ‘

‘;

} else {

song += ‘

+ path + ‘

‘;

}

count++;

}

}

songlist.innerHTML = song;

}

function autoPlay() {

var next = $(“.cur”).next();

next.addClass(“cur”).siblings().removeClass(“cur”);

var cur = document.getElementsByClassName(“cur”);

myAuto.src = cur[0].firstChild.value;

myAuto.play();

}

function selectMP3() {

input.click();

}

function changeSrc(event) {

event = event ? event : window.event;

var obj = event.srcElement ? event.srcElement : event.target;

$(obj).addClass(“cur”).siblings().removeClass(“cur”);

myAuto.src = obj.firstChild.value;

myAuto.play();

}

PS:不是专业的前端可能写的代码很丑。。分析也不够透彻。。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/151626.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • java jce配置_java JCE 不限密钥长度解决办法

    java jce配置_java JCE 不限密钥长度解决办法()转自http://opensourceforgeeks.blogspot.com/2014/09/how-to-install-java-cryptography.html另外,在StackOverflow上也有相关讨论,并提供了反射实现代码https://stackoverflow.com/questions/25959948/local-policy-jar-and-us-export-p…

    2022年6月18日
    48
  • C语言打印short、long、long long和unsigned类型整数[通俗易懂]

    C语言打印short、long、long long和unsigned类型整数[通俗易懂]要打印unsignedint数字,可以使用%u符号。打印long数值,可以使用%d格式说明符。如果系统的int和long类型具有同样的长度,使用%d就可以打印long数值,但是这会给程序移植到其他系统(这两种数据类型的长度不一样的系统)带来麻烦,所以建议使用%ld打印long数值。在x和o符号前也可以使用l前缀,因此%lx表示以十六进制格式打印长整数,%lo表示

    2022年6月5日
    214
  • pycharm 连接数据库报错[通俗易懂]

    pycharm 连接数据库报错[通俗易懂]pycharm连接数据库报错请问出现下面报错是什么原因呢,数据库已连接,运行后就这样了C:\Users\MACHENIKE\PycharmProjects\untitled9\venv\Scripts\python.exeC:/Users/MACHENIKE/PycharmProjects/untitled11/venv/Online-Bookstore-Management-System-master/v1.0/Book_informationUI.pyTraceback(mostrec.

    2022年8月25日
    4
  • 离散实验 判断集合之间是单射,满射还是双射

    离散实验 判断集合之间是单射,满射还是双射通过C++实现集合间映射关系判断思路:创建判断两个集合之间是否是单射,满射,双射的函数,同时也分别创建三个函数,里面存放两集合间的映射关系,再通过刚刚创建的判断函数,进行验证是否满足条件。涉及的数学知识1.单射:设f是由集合A到集合B的映射,如果所有x,y∈A,且x≠y,都有f(x)≠f(y),则称f为由A到B的单射。2.满射:如果每个可能的像至少有一个变量映射其上(即像集合B中的每个元素在A中都有一个或一个以上的原像),或者说值域任何元素都有至少有一个变量与之对应,那这个映射就叫做满射。3.双

    2022年5月1日
    116
  • Eclipse将Maven项目打成jar包[通俗易懂]

    Eclipse将Maven项目打成jar包[通俗易懂]利用Eclipse将项目打包成jar,放入服务器执行。1:在eclipse中选中项目,右键,RunAs,RunConfigurations,输入package,然后点击run执行。2:在eclipse控制台会显示打jar的日志信息,当看到BUILDSUCCESS,代表打包成功。3:将jar包发布到服务器首先将middleware-0.0.1-SNAPSHOT.jar包上传到服务器任意目录,然后查看改jar包是否正在执行。ps-ef|grepjava#查询java进程如果存在,

    2022年6月21日
    132
  • 追源码的平凡之路[通俗易懂]

    追源码的平凡之路[通俗易懂]此文转载自:https://my.oschina.net/makemyownlife/blog/4692463大咖揭秘Java人都栽在了哪?点击免费领取《大厂面试清单》,攻克面试难关~>>>在斯坦福大学,乔布斯做了一场我认为他最精彩的演讲之一(另一场可能是iphone的问世发布会)。他讲了第一个故事”connectingthedots”你不可能充满预…

    2022年5月28日
    32

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号