使用audio5.js
来源:互联网 发布:卓克 卓老板 知乎 编辑:程序博客网 时间:2024/06/08 00:32
audio5.js 网站地址:http://zohararad.github.com/audio5js/。
效果很烂,只是简单实现了功能。
基于audio5.js 和
<link rel="stylesheet" href="http://code.jquery.com/ui/1.11.4/themes/smoothness/jquery-ui.css">
<script src="http://code.jquery.com/ui/1.11.4/jquery-ui.js"></script>
<script>
function contains(str, substr) {
return str.indexOf(substr) >= 0;
}
function playorpause(e, url) {
var _btn = $(e)[0]; //取到点击的按钮
_btnval = $(e).val(); //取到按钮的value
_btnClass = _btn.classList; //取到按钮的class集合。html5新。
if (_btnClass.contains('loaded')) { //判断class集合中是否包含loaded
return false;
}
var audio5js = new Audio5js({
ready: function () {
var voiceUrl = url;
_this = this;
this.load(voiceUrl);
this.play();
_btnClass.add('loaded');
$(e).val("pause");
this.on('play', function () { //如果执行了play方法之后触发此事件
console.log('play');
}, this);
this.on('pause', function () { //暂停后触发
console.log('pause');
}, this);
this.on('ended', function () { //播放结束后触发
$(e).val("play");
}, this);
this.on('timeupdate', function (position, duration) { 播放时间节点变化后触发。
durationsum = duration; //音频总时长 秒。
var posiarray = position.split(':'); //当前播放的位置 mm:ss 格式。
var positionS = parseFloat(posiarray[0]) * 60 + parseFloat(posiarray[1]);
var timewidth = Math.round(positionS / duration * 100); //计算当前百分比。
$("#progressbar").progressbar({
value: timewidth //改变进度条中的位置
});
$("#timer").html(position + " / " + Number(duration).formatTime());
}, this);
//加载了多少百分比
this.on('progress', function (load_percent) {
}, this);
//error event passes error object to callback
this.on('error', function (error) {
console.log(error.message);
}, this);
_btn.addEventListener('click', function () {
if (contains(_btnval, 'pause')) {
_this.pause();
$(e).val("play");
} else {
_this.play();
$(e).val("pause");
}
}, false);
}
});
}
// 格式化秒数到时间格式
Number.prototype.formatTime = function () {
// 计算
var h = 0, i = 0, s = parseInt(this);
if (s > 60) {
i = parseInt(s / 60);
s = parseInt(s % 60);
if (i > 60) {
h = parseInt(i / 60);
i = parseInt(i % 60);
}
}
// 补零
var zero = function (v) {
return (v >> 0) < 10 ? "0" + v : v;
};
return [zero(i), zero(s)].join(":");
};
//点击进度条方法
$(function () {
$("#progressbar").click(function () {
_this.seek(parseInt(durationsum * clientx / $(this).width()));
})
})
//获取鼠标点击的浏览器位置
function getMousePos(event) {
var e = event || window.event;
clientx = e.clientX;
clienty = e.clientY;
}
document.onmousedown = getMousePos;
</script>
<body>
父亲<input class="btnplay" type="button" value="play" onclick="playorpause(this,'fuqin.mp3')" />
<br /><br /><br />
<br /><br /><br /><br />
<div id="progressbar"></div>
<div id="timer"></div>
</body>
- 使用audio5.js
- js使用
- js 使用
- JS 模块化使用 [Require JS]
- 【JS】使用JS动态加载
- 使用JS读秒使用示例
- JS的使用
- 使用js控制图片尺寸
- 使用js控制图片尺寸
- 使用JS实现拖动
- JS 怎样使用
- JS 在哪使用
- js脚本使用大全
- js使用小技巧
- JS FileSystemObject 对象使用
- JS使用技巧
- js脚本使用大全
- 使用js读取xml
- Lua 错误与异常
- Android 安全机制
- 关于序列帧动画,开始,结束监听的解决
- WinForm实现最小化到系统托盘方法实例详解
- 常见的各个平台下面的内存检查工具或者插件
- 使用audio5.js
- 钩子使用
- linux查看文件内容
- jquery的几种元素插入方法
- objective-c制作QQ登录界面
- DO-178C与DO-178B的差别
- C#队列Queue用法实例分析
- Notepad++ 实用经验汇总
- ajax给webmethod方法传递json数组,C#接收