html5怎能编写播放器代码,HTML5应用-实现简单播放器的示例代码分享

本文介绍如何使用HTML5的`<audio>`标签创建一个简单的音乐播放器,通过JavaScript实现播放、暂停、快进、快退等功能。利用浏览器对HTML5的支持,不再依赖插件,代码包括对音频播放状态的检测以及画布绘制控制按钮。
摘要由CSDN通过智能技术生成

5268f80b9b1e01f982625ef6fac83ca1.png

如今HTML已经是比较热门的了,各种关于HTML5的应用程序、游戏、应用商店等也如火如荼的展开了。各大主流浏览器也纷纷开始支持HTML5标准,以备打赢新的一轮浏览器大战。

话不多说,不知道大家有没有发现,可以用比较新的版本的谷歌浏览器直接打开.mp3格式的音乐。自己可以试试:

041e88e39ee99065672088a2030f03f0.gif

这是用谷歌浏览器直接打开mp3文件的情况。 其实,许多新的浏览器都开始支持HTML5中标签,使得一些格式的流媒体可以摆脱对插件的依赖。 下面我就以标签做一个简易的音乐播放器.

26a2d0dd48efeec321cb27e8b720c07c.gif

控件可以通过一些内置的JavaSceipt函数和特性进行控制,以及进行二次开发。例如load()、play()、pause()等控制音频播放的函数,paused、ended、currentTime、startTime等属性等.

对于这个简易播放器具有播放\暂停、快进、快退等功能,结合对象绘制图形

PlayMusic

p.s{position:absolute;left:100px;top:200px;width:600px;}

audio{width:600px;position:absolute;left:0px;top:100px;}

canvas{position:absolute;left:0px;top:40px;}

marquee{position:absolute;left:250px;top:180px;}

h1{color:Red;}

h1.a{color:Green;position:absolute;left:200px;top:50px;}

欢迎使用HTML5播放器

var name = Request.QueryString("name");

if (name == "")

name = "";

name1 = "save_music\\" + name + ".mp3";

//Response.Write(name);

%>

controls>

您的浏览器不支持HTML5中的audio标签

var c = document.getElementById("MusicCanvas");

var con = c.getContext("2d");

var toggle = document.getElementById("music");

drawPS();

drawQuick();

function drawPS() //flag=1表示播放命令,flag=0表示暂停

{

con.save();

con.beginPath();

var g = con.createRadialGradient(275, 30, 0, 275, 30, 25); //创建渐变颜色

if (toggle.paused) //暂停状态

{

g.addColorStop(0.2, "#1FD856"); //

g.addColorStop(0.8, "black"); //

toggle.play();

}

else //播放状态

{

g.addColorStop(0.2, "red"); //黄

g.addColorStop(0.8, "black"); //

toggle.pause();

}

con.fillStyle = g;

con.arc(275, 30, 25, 0, Math.PI * 2, true);

con.fill();

con.closePath();

con.restore();

}

function drawQuick() //

{

con.save();

con.beginPath();

con.fillStyle = "grey";

con.fillRect(130, 10, 70, 40);

con.fillStyle = "black";

con.moveTo(130, 30);

con.lineTo(145, 13);

con.lineTo(165, 13);

con.lineTo(150, 30);

con.lineTo(165, 47);

con.lineTo(145, 47);

con.lineTo(130, 30);

con.fill();

con.moveTo(160, 30);

con.lineTo(175, 13);

con.lineTo(195, 13);

con.lineTo(180, 30);

con.lineTo(195, 47);

con.lineTo(175, 47);

con.lineTo(160, 30);

con.fill();

con.closePath();

con.beginPath();

con.fillStyle = "grey";

var x = 350;

con.fillRect(x, 10, 70, 40);

x += 70;

con.fillStyle = "black";

con.moveTo(x, 30);

con.lineTo(x - 15, 13);

con.lineTo(x - 35, 13);

con.lineTo(x - 20, 30);

con.lineTo(x - 35, 47);

con.lineTo(x - 15, 47); con.lineTo(x, 30);

x -= 30;

con.moveTo(x, 30);

con.lineTo(x - 15, 13);

con.lineTo(x - 35, 13);

con.lineTo(x - 20, 30);

con.lineTo(x - 35, 47);

con.lineTo(x - 15, 47);

con.lineTo(x, 30);

con.fill();

//con.moveTo(160, 40);

con.lineTo(175, 23);

con.lineTo(195, 23);

con.lineTo(180, 40);

con.lineTo(195, 57);

con.lineTo(175, 57);

con.lineTo(160, 40);

con.fill();

con.closePath();

con.restore();

}

function dealclick()//处理敲击事件

{

var x = event.clientX;

var y = event.clientY;

var flag = getPos(x, y);

//alert(x.toString() + " " + y.toString()+" "+flag.toString());

if(flag==0)

return;

switch (flag)//

{

case 1: drawPS(); break;

case 2: quickOrslow(0); break;

case 3: quickOrslow(1); break;

}

}

function getPos(x, y) //

{

var px=100;

var py=240;

x-=px;

y-=py;

if (x >= 275 && x <= 325 && y >= 15 && y<= 65)

return 1;

if (x >= 130 && x <= 200 && y >= 20 && y <= 60)

return 2;

if (x >= 350 && x <= 420 && y >= 20 && y <= 60)

return 3;

return 0;

}

function quickOrslow(flag) //

{

var total = toggle.duration;

var s = Math.ceil(total*0.05);

if (flag == 1)//kuaijin

{

if (toggle.ended == true)

return;

var now = toggle.currentTime;

if (total - now <= s)

return;

else

toggle.currentTime = now + s;

}

else //后退

{

var n = toggle.currentTime;

if (n < s)

return;

else

toggle.currentTime = n - s;

}

}

这是全部的源代码,当然其中包含了一些ASP语句,适用于传递歌曲名的,可以不用考虑。drawPS()是控制播放与暂停的函数,quickOrSlow()是控制快退的函数。当然这个播放器是非常简陋的,但是通过加工美化,还是可以做出优秀的播放器的,而且是没有插件的。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值