html5+css3酷炫音频播放器代码
1. [代码][JavaScript]代码
(function($){
jQuery.fn.extend({
"initAudio" : function(){
var myAudio = $("audio",this)[0];
var $sourceList = $("source",this);
var currentSrcIndex = 0;
var currentSr = "";
/*添加播放器UI组件*/
this.append(
'<div class="music_info clearfix">\
<div class="cd_holder"><span
class="stick"></span><div
class="cd"></div></div>\
<div class="meta_data">\
<span class="title"></span>\
<div class="rating">\
<div class="starbar">\
<ul class="current-rating" data-score="85">\
<li class="star5"></li>\
<li class="star4"></li>\
<li class="star3"></li>\
<li class="star2"></li>\
<li class="star1"></li>\
</ul>\
</div>\
</div>\
<div class="volume_control">\
<a class="decrease">a</a>\
<span class="base_bar">\
<span class="progress_bar"></span>\
<a class="slider"></a>\
</span>\
<a class="increase">b</a>\
</div>\
</div>\
</div>\
<ul class="music_list"></ul>\
<div class="controls">\
<div class="play_controls">\
<a class="btn_previous">e</a>\
<a class="btn_play">c</a>\
<a class="btn_next">d</a>\
</div>\
<div class="time_line">\
<span class="passed_time">0:00</span>\
<span class="base_bar">\
<span class="progress_bar"></span>\
</span>\
<span class="total_time">0:00</span>\
</div>\
</div>'
);
/*为播放列表添加歌曲信息*/
for (var i = 0; i < $sourceList.length; i++) {
$(".music_list").append("<li>" + $sourceList[i].title + "</li>");
};
/*调控音量方法*/
HTMLAudioElement.prototype.changeVolumeTo = function(volume){
this.volume = volume;
$(".volume_control .progress_bar").css("width",volume*100 + "%");
$(".volume_control .slider").css("left",volume*100 - 7 + "px");
}
/*为播放器添加事件监听*/
/*播放、暂停、上一首、下一首功能实现*/
$(".btn_play").click(function(){
if (myAudio.paused) {
myAudio.play();
} else {
myAudio.pause();
}
});
$(".btn_next").click(function(){
++currentSrcIndex > $sourceList.length - 1 && (currentSrcIndex = 0);
currentSrc = $("#myAudio source").eq(currentSrcIndex).prop("src");
myAudio.src = currentSrc;
myAudio.play();
});
$(".btn_previous").click(function(){
--currentSrcIndex < 0 && (currentSrcIndex = 0);
currentSrc = $("#myAudio source").eq(currentSrcIndex).prop("src");
myAudio.src = currentSrc;
myAudio.play();
});
/*音量调控功能实现*/
$(".volume_control .decrease").click(function() {
var volume = myAudio.volume - 0.1;
volume < 0 && (volume = 0);
myAudio.changeVolumeTo(volume);
});
$(".volume_control .increase").click(function() {
var volume = myAudio.volume + 0.1;
volume > 1 && (volume = 1);
myAudio.changeVolumeTo(volume);
});
$(".volume_control .base_bar").mousedown(function(ev){
var posX = ev.clientX;
var targetLeft = $(this).offset().left;
var volume = (posX - targetLeft)/100;
volume > 1 && (volume = 1);
volume < 0 && (volume = 0);
myAudio.changeVolumeTo(volume);
});
$(".volume_control .slider").mousedown(starDrag = function(ev) {
ev.preventDefault();
var origLeft = $(this).position().left; /*滑块初始位置*/
var origX = ev.clientX; /*鼠标初始位置*/
var target = this;
var progress_bar = $(".volume_control .progress_bar")[0];
$(document).mousemove(doDrag = function(ev){
ev.preventDefault();
var moveX = ev.clientX - origX; /*计算鼠标移动的距离*/
var curLeft = origLeft + moveX; /*用鼠标移动的距离表示滑块的移动距离*/
(curLeft < -7) && (curLeft = -7);
(curLeft > 93) && (curLeft = 93);
target.style.left = curLeft + "px";
progress_bar.style.width = curLeft + 7 + "%";
myAudio.changeVolumeTo((curLeft + 7)/100);
});
$(document).mouseup(stopDrag = function(){
$(document).unbind("mousemove",doDrag);
$(document).unbind("mouseup",stopDrag);
});
});
/*音频进度条调控功能实现*/
$(".time_line .base_bar").mousedown(function(ev){
var posX = ev.clientX;
var targetLeft = $(this).offset().left;
var percentage = (posX - targetLeft)/140 * 100;
myAudio.currentTime = myAudio.duration * percentage / 100;
});
$(".music_info .cd").click(function(){
$(".music_list").slideToggle(600);
});
$(".music_list").click(function(ev){
var index = $(ev.target).index();
currentSrcIndex = index;
currentSrc = $("#myAudio source:eq(" + currentSrcIndex + ")").prop("src");
myAudio.src = currentSrc;
myAudio.play();
});
/*audio元素事件绑定*/
$(myAudio).bind("loadedmetadata",function(){
var totalTime = formatTime(myAudio.duration);
var title = $("#myAudio source:eq(" + currentSrcIndex + ")").attr("title");
$(".time_line .total_time").text(totalTime);
$(".meta_data .title").text(title);
});
$(myAudio).bind("timeupdate",function(){
var duration = this.duration;
var curTime = this.currentTime;
var percentage = curTime/duration * 100;
$(".time_line .progress_bar").css("width",percentage + "%");
var passedTime = formatTime(curTime);
$(".time_line .passed_time").text(passedTime);
});http://www.huiyi8.com/hunsha/chuangyi/
$(myAudio).bind("play",function(){
$(".btn_play").text("h");
$(".music_list li").eq(currentSrcIndex).addClass("active")
.siblings().removeClass("active");
$(".music_info .cd").addClass("rotate");
$(".cd_holder .stick").addClass("play");
});创意婚纱照片
$(myAudio).bind("pause",function(){
$(".btn_play").text("c");
$(".music_info .cd").removeClass("rotate");
$(".cd_holder .stick").removeClass("play");
});
$(myAudio).bind("ended",function(){
$(".btn_next").triggerHandler("click");
});
$(myAudio).bind("progress",function(){
if (myAudio.buffered.length == 1) {
// only one range
if (myAudio.buffered.start(0) == 0) {
// The one range starts at the beginning and ends at
// the end of the video, so the whole thing is loaded
var buffered = myAudio.buffered.end(0);
var percentage = buffered/myAudio.duration * 100;
$(".time_line .base_bar").css("background-size",percentage + "% 100%");
}
}
});
$(myAudio).trigger("loadedmetadata");
/*歌曲播放时间的格式化,将秒数格式化为“分:秒”的形式*/
function formatTime(time) {
var minutes = parseInt(time/60);
var seconds = parseInt(time%60);
seconds<10 && (seconds = "0" + seconds);
return minutes + ":" + seconds;
};
}
});
})(jQuery)
html5+css3酷炫音频播放器代码的更多相关文章
- 【大结局】《从案例中学习JavaScript》之酷炫音乐播放器(四)
这是之前写的用H5制作的音乐播放器,前三节其实已经做得差不多了,音轨的制作原理已经在上一节说明,不过一直还没有和音乐对接. 本章作为该系列的一个完结篇,我会专门把动态音轨的实现代码贴出来,demo地址 ...
- (jsp/html)网页上嵌入播放器(常用播放器代码整理) http://www.jb51.net/article/37267.htm
网页上嵌入播放器,只要在HTML上添加以上代码就OK了,下面整理了一些常用的播放器代码,总有一款适合你,感兴趣的朋友可以参考下哈,希望对你有所帮助 这个其实很简单,只要在HTML上添加以上代码就O ...
- HTML5 音频播放器-Javascript代码(短小精悍)
直接上干货咯! //HTML5 音频播放器 lzpong 2015/01/19 var wavPlayer = function () { if(window.parent.wavPlayer) re ...
- 【jquery】一款不错的音频播放器——Amazing Audio Player
前段时间分享了一款视频播放器,点击这里.今天介绍一款不错的音频播放器——Amazing Audio Player. 介绍: Amazing Audio Player 是一个使用很方便的 Windows ...
- IOS开发之简单音频播放器
今天第一次接触IOS开发的UI部分,之前学OC的时候一直在模拟的使用Target-Action回调模式,今天算是真正的用了一次.为了熟悉一下基本控件的使用方法,和UI部分的回调,下面开发了一个特别简易 ...
- 仿酷狗音乐播放器开发日志十九——CTreeNodeUI的bug修复二(附源码)
转载请说明原出处,谢谢 今天本来打算把仿酷狗播放列表的子控件拖动插入功能做一下,但是仔细使用播放列表控件时发现了几个逻辑错误,由于我的播放 列表控件是基于CTreeViewUI和CTreeNodeUI ...
- Unity3D音频播放器 动态装载组件
大多数在线Unity有关如何只教程Unity在播放音乐.之后如何通过拖动它们无法继续添加音频文件 但有时在游戏中的对象要玩几个声音.这时候我们就需要使用代码控制,拖动推教程AudioClip颂值的方法 ...
- 最简单的基于FFMPEG+SDL的音频播放器 ver2 (采用SDL2.0)
===================================================== 最简单的基于FFmpeg的音频播放器系列文章列表: <最简单的基于FFMPEG+SDL ...
- OCiOS开发:音频播放器 AVAudioPlayer
简单介绍 AVAudioPlayer音频播放器可以提供简单的音频播放功能.其头文件包括在AVFoudation.framework中. AVAudioPlayer未提供可视化界面,须要通过其提供的播放 ...
随机推荐
- hdu2222Keywords Search字典树入门……
#include<iostream> #include<cstring> using namespace std; struct node { int num; node *n ...
- vs调试,监控变量
- android权限申请Permission
代码地址如下:http://www.demodashi.com/demo/12432.html android在6.0系统以后,权限申请变得麻烦起来,今天介绍一个超级好用的权限申请库,我在使用中经过再 ...
- php 字符串内容是数组格式 转换成数组
一个简单的应用.. 例, $str = "array( 'USD'=>'1', 'GBP'=>'0.6494', 'EUR'=>'0.7668' ,'JPY'= ...
- 循序渐进学Python 1 安装与入门
1 安装 2 使用 2.1 运行程序 3 艺搜参考 by 2013年10月16日 安装 Windows安装版,源码,帮助文档: 使用 打开开始菜单中的Python GUI启动Python解释器: 启动 ...
- TP 接收post请求使用框架自带函数I()防止注入
<input id="dele_id[]" value="1" type="checkbox" /> <input id= ...
- 目标检测之基础hessian matrix ---海森矩阵
就是海赛(海色)矩阵,在网上搜就有. 在数学中,海色矩阵是一个自变量为向量的实值函数的二阶偏导数组成的方块矩阵, Hessian矩阵是多维变量函数的二阶偏导数矩阵,H(i,j)=d^2(f)/(d(x ...
- SQL ROW_NUMBER() 分页使用示例
ALTER PROC [dbo].[TestProPage] , AS BEGIN SELECT * FROM (SELECT *,ROW_NUMBER() OVER(ORDER BY IndexID ...
- Android 自定义View跑马灯效果(一)
今天通过书籍重新复习了一遍自定义VIew,为了加强自己的学习,我把它写在博客里面,有兴趣的可以看一下,相互学习共同进步: 通过自定义一个跑马灯效果,来诠释一下简单的效果: 一.创建一个类继承View, ...
- dubbo介绍及其使用案例
dubbo介绍及其使用案例 1. Dubbo是什么? Dubbo是一个分布式服务框架,致力于提供高性能和透明化的RPC远程服务调用方案,以及SOA服务治理方案.简单的说,dubbo就是个服务框架,如果 ...