直接上干货咯!

//HTML5 音频播放器 lzpong 2015/01/19
var wavPlayer = function () {
if(window.parent.wavPlayer) return window.parent.wavPlayer;
var CT = null;
var D = null;
var mover = false;
var evtTm = { divout: false, divtimer: 0, divover: false, divshow: true, devwidth: 370 };
D = document.createElement("div");
var cls = "position:absolute;top:0px;right:1px;display:none;width:20px;overflow:hidden;word-break:break-all;word-wrap:break-word;border-radius:20px;".replace(" ", '').split(";");
for (var i = 0; i < cls.length; i++) {
var clss = cls[i].split(":");
if (clss[0].length > 0)
D.style[clss[0]] = clss[1];
}
D.innerHTML = "<audio controls='true' id='wavPlayCtrl' style='width: 500px;min-height: 30px;display: inline;'></audio>";
setTimeout(function () {
document.body.appendChild(D);
setTimeout(function () {
CT = document.querySelector("#wavPlayCtrl");
//播放结束后3秒内鼠标没有on且播放ended的,hide
CT.onended = function (e) {
setTimeout(function () { if (!mover && (CT.src ? CT.paused : true)) hide(); }, 3000);
}
//鼠标100毫秒后还on,show
CT.onmouseover = function (e) {
mover = true;
if (!evtTm.divover) {
evtTm.divover = true;
clearTimeout(evtTm.divtimer);
evtTm.divtimer = setTimeout(function () { if (mover) show(); }, 100);
evtTm.divover = false
}
}
//鼠标out,2秒后且播放ended的,dide
CT.onmouseout = function (e) {
mover = false;
if (!evtTm.divout) {
evtTm.divout = true;
clearTimeout(evtTm.divtimer);
evtTm.divtimer = setTimeout(function () { if (!mover && (CT.src ? CT.paused : true)) hide(); }, 2000);
evtTm.divout = false
}
}
}, 200);
}, 500);
function show() {
var w = parseInt(D.style.width);
if (w < 370) setTimeout(function () { D.style.width = w + 74 + "px"; show(); }, 50);
else D.style.width = "370px";
}
function hide() {
var w = parseInt(D.style.width);
if (w > 37) setTimeout(function () { D.style.width = w - 74 + "px"; hide(); }, 50);
else D.style.width = "20px";
}
return {
//播放
Play: function (path) { show(); D.style.display = "inline"; CT.src = path; CT.play(); },
//暂停
Pause: function () { CT.pause(); },
Stop: function () { if (CT.stop) CT.stop(); else CT.pause(); },
//是否循环播放(设置一次一直生效)
Loop: function (b) { CT.loop = b; },
//隐藏控件
Hide: function () { CT.pause(); hide() },
//显示控件
Show: function () { show() },
//获取控件
CT: function () { return CT; },
Ver:"lzpong 2015/10/19"
};
}();

HTML5 音频播放器

会在页面(或者首页)右上角出现, 会自动隐藏, 一般支持*.wav,*.MP3之类的 等...

当然,样式什么的 就那啥, 不说了, 浏览器基本样式咯 ^,^

HTML5 音频播放器-Javascript代码(短小精悍)的更多相关文章

  1. 【jquery】一款不错的音频播放器——Amazing Audio Player

    前段时间分享了一款视频播放器,点击这里.今天介绍一款不错的音频播放器——Amazing Audio Player. 介绍: Amazing Audio Player 是一个使用很方便的 Windows ...

  2. 基于canvas和Web Audio的音频播放器

    wavesurfer.js是一款基于HTML5 canvas和Web Audio的音频播放器插件.通过wavesurfer.js你能够使用它来制作各种HTML5音频播放器,它能够在各种支持 Web A ...

  3. 4个小时实现一个HTML5音乐播放器

    技术点:ES6+Webpack+HTML5 Audio+Sass 这里,我们将一步步的学到如何从零去实现一个H5音乐播放器. 首先来看一下最终的实现效果:Demo链接 接下来就步入正题: 要做一个音乐 ...

  4. IOS开发之简单音频播放器

    今天第一次接触IOS开发的UI部分,之前学OC的时候一直在模拟的使用Target-Action回调模式,今天算是真正的用了一次.为了熟悉一下基本控件的使用方法,和UI部分的回调,下面开发了一个特别简易 ...

  5. Plyr – 简单,灵活的 HTML5 媒体播放器

    Plyr 是一个简单的 HTML5 媒体播放器,包含自定义的控制选项和 WebVTT 字幕.它是只支持现代浏览器,轻量,方便和可定制的媒体播放器.还有的标题和屏幕阅读器的全面支持. 在线演示      ...

  6. Unity3D音频播放器 动态装载组件

    大多数在线Unity有关如何只教程Unity在播放音乐.之后如何通过拖动它们无法继续添加音频文件 但有时在游戏中的对象要玩几个声音.这时候我们就需要使用代码控制,拖动推教程AudioClip颂值的方法 ...

  7. 最简单的基于FFMPEG+SDL的音频播放器 ver2 (采用SDL2.0)

    ===================================================== 最简单的基于FFmpeg的音频播放器系列文章列表: <最简单的基于FFMPEG+SDL ...

  8. 基于jQuery虾米音乐播放器样式代码

    分享一款基于jQuery虾米音乐播放器样式代码.这是一款基于jquery+html5实现的虾米音乐播放器源码下载.效果图如下: 在线预览   源码下载 实现的代码. html代码: <div c ...

  9. OCiOS开发:音频播放器 AVAudioPlayer

    简单介绍 AVAudioPlayer音频播放器可以提供简单的音频播放功能.其头文件包括在AVFoudation.framework中. AVAudioPlayer未提供可视化界面,须要通过其提供的播放 ...

随机推荐

  1. linpe包-让发送和接收数据分析更快和更容易

    1.简介 通常在R中从来进行分析和展现的数据都是以基本的格式保存的,如.csv或者.Rdata,然后使用.Rmd文件来进行分析的呈现.通过这个方式,分析师不仅可以呈现他们的统计分析的结果,还可以直接生 ...

  2. Lua笔记

    闭包 示例一 function newCounter() return function() -- anonymous function i = i + return i end end c1 = n ...

  3. oracle连接问题【转载】

    SQL的四种连接-左外连接.右外连接.内连接.全连接   今天在看一个遗留系统的数据表的时候发现平时查找的视图是FULL OUT JOIN的,导致平时的数据记录要进行一些限制性处理,其实也可以设置视图 ...

  4. iOS中push视图的时候,屏幕中间会出现一条灰色的粗线的解决方案

    因为执行动画需要时间,所以在动画未完成又执行另一个切换动画,容易产生异常.所以在一个方法连续push不同的VC是没有问题的,但是不小心push同一个VC,并且animated为YES,可能多次跳转了 ...

  5. JAVA基础整理-集合篇(一)

    集合作为JAVA的基础知识,本来感觉自己理解的很清楚了,但是在最近的一次面试中还是答得不尽如人意!再次做一下整理,以便加深理解以及随时查阅. 首先,java.util包中三个重要的接口及特点:List ...

  6. ES6的promise对象应该这样用

    ES6修补了一位Js修真者诸多的遗憾. 曾几何时,我这个小白从js非阻塞特性的坑中爬出来,当我经历了一些回调丑陋的写法和优化的尝试之后,我深深觉得js对于多线程阻塞式的开发语言而言,可能有着其太明显的 ...

  7. HTTP 错误 500.21 - Internal Server Error 处理程序“PageHandlerFactory-Integrated”在其模块列表中有一个错误模块“ManagedPipelineHandler”

    HTTP 错误 500.21 - Internal Server Error 处理程序“PageHandlerFactory-Integrated”在其模块列表中有一个错误模块“ManagedPipe ...

  8. SQL Server2005清除数据库日志

     SQL2005清空删除日志: 复制代码 代码如下: Backup Log DNName with no_log  '这里的DNName是你要收缩的数据库名,自己注意修改下面的数据库名,我就不再注释了 ...

  9. 5.Powershell变量

    在指令执行过程中,会有一些数据产生,这些数据被用于以后的语句,需要一个存储单元暂时的存放这些数据,这个时候定义一个变量来存储数据.例如$string = “Hello Powershell!” Pow ...

  10. LINUX 下grep命令查找

    当出现查找文件出现匹配到二进制文件时,大概是因为文件同时含有文本文件与二进制文件,需要加上 grep -a,就可以解决问题.