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反射机制的作用是什么_java反射常用的类有哪些

    java反射机制的作用是什么_java反射常用的类有哪些运行时类型识别(Run-timeTypeIdentification,RTTI)主要有两种方式,一种是我们在编译时和运行时已经知道了所有的类型,另外一种是功能强大的“反射”机制。要理解RTTI在Java中的工作原理,首先必须知道类型信息在运行时是如何表示的,这项工作是由“Class对象”完成的,它包含了与类有关的信息。类是程序的重要组成部分,每个类都有一个Class对象,每当编写并编译了一个…

    2025年12月2日
    5
  • 1.1音响系统放大器设计

    1.1音响系统放大器设计​⑴了解集成功率放大器内部电路工作原理;​​⑵掌握其外围电路的设计与主要性能参数的测试方法;​​⑶掌握用运放与功率管设计音频功率放大电路的方法;​​(4)掌握运用电路仿真软件进行模拟电路辅助设计的方法;

    2022年5月8日
    44
  • 【OpenGrok代码搜索引擎】四、OpenGrok使用指南

    【OpenGrok代码搜索引擎】四、OpenGrok使用指南三、智能窗口四、差异跳转

    2022年4月30日
    146
  • Android原生系统真的那么好用吗?安卓原生系统吊打其他系统,因为有Google-Play

    Android原生系统真的那么好用吗?安卓原生系统吊打其他系统,因为有Google-PlayAndroid原生系统真的那么好用吗?这种问题当然是否定的。原生Android(指的是直接基于AOSP构建的而非手机厂商出厂固件修改的第三方ROM,但包括Nexus/Pixel或其它被Google直接支持的手机的可能是闭源的出厂固件)对于适合的人而言是无可替代的,当前几乎无任何定制ROM就与之相比。但是对于更多的中国用户而言,他们从一开始就使用的是定制系统,已经习惯了那一套逻辑和对系统的认知,所以定制系统是更好的选择(但您们最好祈祷一下手机厂商的ROM不要越来越不要脸)。当然.

    2022年6月19日
    82
  • jquery1.9+获取append后的动态元素建议收藏

    jquery1.9+放弃了live,说是用on代替了!那么如果我们以前用live来获取jquery动态添加的元素,现在应该用on怎么写呢?首先:然后,我使用append的方法:$('#one

    2021年12月20日
    44
  • IDEA 2022.01.13激活服务器【最新永久激活】

    (IDEA 2022.01.13激活服务器)好多小伙伴总是说激活码老是失效,太麻烦,关注/收藏全栈君太难教程,2021永久激活的方法等着你。https://javaforall.net/100143.htmlIntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,上面是详细链接哦~1PA3AFINM4-eyJsaWNlbnNlSWQiOi…

    2022年3月31日
    132

发表回复

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

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