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:不是专业的前端可能写的代码很丑。。分析也不够透彻。。

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

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

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • 树莓派3B 系统安装及初始化配置教程[通俗易懂]

    树莓派3B 系统安装及初始化配置教程[通俗易懂]本文仅供学习交流使用,如侵立删!企鹅:1033383881相关软件下载链接SD卡格式化工具、系统烧录工具、Raspbian系统镜像https://pan.baidu.com/s/1o5j_uD31hxLsPP–GRZ4Bw提取码:9nhv1.烧录系统1.1SD卡格式化安装SD卡格式化工具,格式化SD卡1.2写入系统镜像至SD卡点击写入后会有个确认覆盖弹窗提示,YES即…

  • java之多线程

    java之多线程简介:线程(thread)就是进程中的一个执行线索。Java虚拟机允许进程中同时执行多个线程。每个线程都有一个优先级。具有较高优先级的线程先执行。线程是操作系统分配CPU时间的基本实体。每一个

  • 初学者学习编程语言应该学习哪一种?

    初学者学习编程语言应该学习哪一种?初学者学习编程语言应该学习哪一种?

  • java 获取当前系统时间 时间比较

    java 获取当前系统时间 时间比较JAVA获得当前时间的几种方法一.获取当前系统时间和日期并格式化输出:importjava.util.Date;importjava.text.SimpleDateFormat;publicclassNowString{publicstaticvoidmain(String[]args){ SimpleDateFormat

    2022年10月19日
  • 看了这篇文章觉得MySQL读写分离这么简单「建议收藏」

    点赞多大胆,就有多大产!有支持才有动力!微信搜索公众号【达摩克利斯之笔】获取更多资源,文末有二维码!前言​  Mysql优化那篇文章有朋友留言说就这么点?,深深刺痛了晓添的心,感觉知识深度被小看了,痛定思痛决定发布读写分离,分表分库优化文章,其实这系列文章也在Mysql优化的计划之内,最近较忙断断续续写的有点难受,到今天才跟大家见面,篇幅有限这篇我们来说说基于Mycat实现读写分离,话不多…

  • CentOS7下使用YUM安装MySQL5.6

    CentOS7下使用YUM安装MySQL5.6(1)检查系统中是否已安装MySQL。rpm-qa|grepmysql返回空值的话,就说明没有安装MySQL。注意:在新版本的CentOS7中,默认的数据库已更新为了Mariadb,而非MySQL,所以执行yuminstallmysql命令只是更新Mariadb数据库,并不会安装MySQL。(2)查看已安装的Mariadb数据库版本…

发表回复

您的电子邮箱地址不会被公开。

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