返回顶部
首页 > 资讯 > 前端开发 > JavaScript >利用HTML5制作音频播放器插件
  • 654
分享到

利用HTML5制作音频播放器插件

2024-04-02 19:04:59 654人浏览 八月长安
摘要

这篇文章主要讲解了“利用HTML5制作音频播放器插件”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“利用html5制作音频播放器插件”吧!上图便是这个音频播放

这篇文章主要讲解了“利用HTML5制作音频播放器插件”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“利用html5制作音频播放器插件”吧!

利用HTML5制作音频播放器插件

上图便是这个音频播放器的UI界面图,里面还隐藏了一个歌曲的播放列表。整个播放器的UI除了大背景的人像图和歌曲的星星评分使用了图片其他全部由CSS和font-face绘制而成,看上去有难度的地方就只有CD和打碟器的制作了,在歌曲播放时CD和打碟器都是具有动画交互效果的,这个在后面的部分会讲解到。点击播放器的CD可以打开播放列表噢~

因为这一期的教程主要是为了展示Html5新增的<audio>标签和audio元素的Dom api的使用,所以播放器UI的绘制在这里就不详细解释了,有疑问的可以自行查看案例的CSS文件的注释或者在下方留言。

主要功能:

一、播放、暂停、上一首、下一首、音量增减

二、点击CD可以打开和关闭播放列表

三、可以拖动本地音乐文件到播放器进行播放

Html结构


代码如下:


<div id="myAudio" >
 <audio>
   <source title="王若琳 - Wild World.mp3" src="<a href="Http://music.huoxing.com/upload/20121215/1355575227640_8200.mp3">http://music.huoxing.com/upload/20121215/1355575227640_8200.mp3</a>" />
   <source title="韦礼安 - 还是会.mp3" src="<a href="http://stream18.qqmusic.qq.com/31005070.mp3">http://stream18.qqmusic.qq.com/31005070.mp3</a>" />
   <source title="王若琳 - Lost in paradise.mp3" src="<a href="http://stream12.qqmusic.qq.com/30416842.mp3">http://stream12.qqmusic.qq.com/30416842.mp3</a>" />
 </audio>
 <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>
</div>

audio标签

在上面的结构中我们可以发现这个html5新增的audio标签,它具有一个controls属性,顾名思义它是播放器的控制器,controls 属性规定浏览器为音频提供播放控件,例如在chrome浏览器下的audio标签中设置该属性,播放器就会以如下的形式出现,如果不设置该属性,则会是空白一片

代码如下:

<audio controls src="xxx.mp3"></audio>

利用HTML5制作音频播放器插件

但由于在不同浏览器下的对audio标签渲染效果不一,这种简易的方法并不适合在跨浏览器下的使用,并且浏览器默认的播放器控件所提供的功能实在是太少了。。所以我们一般通过不设置该属性的方法来隐藏浏览器的默认播放控件,并且手工加入额外的标签和样式来定制播放器的UI界面。

播放控制

在播放器的UI界面绘制完成后,首先我们需要做的是为播放、上一首、下一首这三个主要的控制按钮添加对应的事件监听。

代码如下:


var myAudio = $("#myAudio audio")[0];
var $sourceList = $("#myAudio source");
var currentSrcIndex = 0;
var currentSr = "";

代码如下:


$(".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();
});

上述的按钮点击的事件监听中,我们通过调用原始的audio元素的play()和pause()方法来控制音频的播放和暂停。另外audio元素提供了currentSrc属性,该属性表示当前播放文件的文件源,我们通过设置该属性来控制当前播放的歌曲曲目。

音量控制

接下来我们来对音量条两边的两个小喇叭添加事件监听,使得通过点击左右两个小喇叭可以减小和增加当前播放的音量。要设置播放器的音量,我们可以调用audio元素中所提供的volume属性。volume值最大为1,最小为0,在这里我们通过每次点击喇叭增减0.1的音量来实现音量的控制。当然你也可以使用别的值。但要注意的是javascript语言不能对小数提供精准的控制,所以每次减少0.1的音量时实际上减少的音量是稍微地大于0.1的,这导致当连续点击9次音量减少的按钮时剩下0.09xxxx的音量,然后你会发现播放器怎么无法静音了。。。当然这个问题是很容易解决的(如下所示),只是稍作提醒。

代码如下:


$(".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);
});

另外我们还需要实现使用滑动器或者点击音量条某一位置来调控音量的功能,有了上面的基础,这个就容易完成了。首先我们来看看点击音量条某一位置来调控音量的功能:点击音量条的某一位置,计算该由音量条的起点到该位置的长度值,再用该值除以总的音量条长度(在这里是100)得到百分比值,再用该百分比值乘以最大音量值1得到所要跳跃到的音量值,再赋值给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);
});
});

时间控制

好了,现在播放器已经基本能用了,但我们还希望能够直接跳过音频的一部分到特定的时间点。那么要怎么实现呢??!制定标准的委员们也不是傻子,这种常用的功能是不会有所疏漏的拉~所以赶紧翻翻API吧,你会发现audio元素提供了一个名为currentTime的属性,非常简明易懂的名称(其实大多属性都是很好理解的),设置该属性可以设置当前播放的时间点。

在这里,我们还需要使用audio的另一个属性duration,该属性指的是当前播放文件的总时间长度。因此根据音量控制的实现,我们可以这样做:

一、点击进度条的某一位置,计算该由进度条的起点到该位置的长度占总进度条长度的百分比值(例如点击进度条的正中间位置,则进度条的起点到该位置的长度占总进度条长度的50%),记为percentage。

二、然后用percentage乘以文件的总时间长度duration就得到了你想要跳跃到的时间点的值,再把该值赋给currentTime即完成了所要实现的功能。

代码如下:


$(".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;
});

感谢各位的阅读,以上就是“利用HTML5制作音频播放器插件”的内容了,经过本文的学习后,相信大家对利用HTML5制作音频播放器插件这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是编程网,小编将为大家推送更多相关知识点的文章,欢迎关注!

--结束END--

本文标题: 利用HTML5制作音频播放器插件

本文链接: https://lsjlt.com/news/76163.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 利用HTML5制作音频播放器插件
    这篇文章主要讲解了“利用HTML5制作音频播放器插件”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“利用HTML5制作音频播放器插件”吧!上图便是这个音频播放...
    99+
    2024-04-02
  • Android录制声音文件(音频)并播放
    本文实例为大家分享了Android录制音频文件的具体代码,供大家参考,具体内容如下 1、这个demo中没有对多次点击同一个声音文件做详细处理,偶尔会有崩溃,用的时候需要注意。...
    99+
    2022-06-06
    Android
  • 使用 HTML 音频标签控制音频播放
    属性 src: 指定音频文件路径 autoplay: 自动播放音频(可选) loop: 循环播放音频(可选) volume: 设置音频音量(范围:0 到 1) controls: 显示音频控件(如播放、暂停、音量)(可选) 方法 p...
    99+
    2024-03-16
    音频标签
  • JS+html5如果制作简单音乐播放器
    这篇文章主要为大家展示了“JS+html5如果制作简单音乐播放器”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“JS+html5如果制作简单音乐播放器”这篇文章吧...
    99+
    2024-04-02
  • 如何在HTML5中使用video.js视频播放插件
    本篇文章给大家分享的是有关如何在HTML5中使用video.js视频播放插件,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。看下默认例子:controls表示控制条,prload...
    99+
    2023-06-09
  • 利用java怎么制作一个视频播放器
    今天就跟大家聊聊有关利用java怎么制作一个视频播放器,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。建立普通maven项目,添加vlcj的依赖 <dependency...
    99+
    2023-05-31
    java ava
  • HTML5 audio元素播放声音jQuery小插件的用法
    今天就跟大家聊聊有关HTML5 audio元素播放声音jQuery小插件的用法,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。 ...
    99+
    2024-04-02
  • Android中怎么利用MediaPlay播放音频和视频
    Android中怎么利用MediaPlay播放音频和视频,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。实现MediaPlay的基本步骤是创建MediaPlay对象调用setDa...
    99+
    2023-06-04
  • 利用 HTML 音频标签创建播放列表
    步骤 1:创建 HTML 文档 创建一个新的 HTML 文档并将其命名为 "playlist.html"。 步骤 2:添加音频标签 在 HTML 文档中添加多个音频标签,每个标签对应一首歌曲: <audio src="song1.m...
    99+
    2024-03-15
    音频标签
  • 如何利用Python实现简易的音频播放器
    目录1. 需要用到的Python库2. 简易UI设计3. 功能模块实现3.1 选择音频文件进行播放3.2 控制音频播放、暂停3.3 控制音频音量大小3.4 播放器初始化等细节4. 运...
    99+
    2024-04-02
  • 怎么用HTML5在网页中嵌入音频和视频播放
    本篇内容介绍了“怎么用HTML5在网页中嵌入音频和视频播放”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!H...
    99+
    2024-04-02
  • DPlayer.js视频播放插件使用方法
    DPlayer.js视频播放插件简单的使用 主要用到了实现了:视频播放 、监听开始、结束、暂停、播放时间、切换视频 官方文档:http://dplayer.js.org 效果图: ...
    99+
    2024-04-02
  • vue音乐播放器插件vue-aplayer怎么用
    这篇文章给大家分享的是有关vue音乐播放器插件vue-aplayer怎么用的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。在vue的官网上看到vue-aplayer这个音乐播放器的...
    99+
    2024-04-02
  • Flutter中视频播放器插件如何使用
    这篇文章主要讲解了“Flutter中视频播放器插件如何使用”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Flutter中视频播放器插件如何使用”吧!创建一个新的视频播放器在使用视频播放器插件...
    99+
    2023-06-29
  • 怎么使用qt制作音乐播放器
    要使用Qt制作音乐播放器,您可以按照以下步骤进行:1. 首先,确保已经安装了Qt开发环境。您可以从Qt官方网站上下载并安装Qt,确保...
    99+
    2023-08-09
    qt
  • 怎么在Vue中利用node实现音频录制播放功能
    本篇文章给大家分享的是有关怎么在Vue中利用node实现音频录制播放功能,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。vue部分:安装recorderxcnpm in...
    99+
    2023-06-14
  • c#基于winform制作音乐播放器
    目录AxWindowsMediaPlayer的方法1 首先新建一个页面 如图所示: 图片左侧是列表 使用listview 右侧是背景图片。图片框框的地方是后面可以实现的,+和-按钮分...
    99+
    2024-04-02
  • Android音乐播放器制作 点击歌曲实现播放(二)
    上次我们实现了把手机里的音频扫描到,然后放在list集合里面,用ListView展示在手机界面上,如果没有看过的可以去看看本人的博客:Android音乐播放器制作(一)扫描本地...
    99+
    2022-06-06
    Android
  • 教你轻松制作Android音乐播放器
    欣赏一下我们清爽的界面吧~ 如果是只用activity来制作这样的东西简直是太小儿科了,此处我们当然用的是service 首先我们先上service的代码: 1、如果我们要访...
    99+
    2022-06-06
    Android
  • iOS使用音频处理框架The Amazing Audio Engine实现音频录制播放
    iOS 第三方音频框架The Amazing Audio Engine使用,实现音频录制、播放,可设置配乐。 首先看一下效果图: 下面贴上核心控制器代码: #import "V...
    99+
    2022-05-27
    iOS 音频
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作