audio自定义简易音频播放器

先看一下效果:

点击这里查看DEMO, 当然源代码也都在这个文件里啦;

音频效果

功能:

  • 播放/暂停

  • 音频轨迹随意拖动

  • 播放时间及总时间

  • 静音

实现逻辑:

当然, 最终还是使用的HTML5audio的相关API实现的;

首先, 写好播放器相关的样式并且隐藏默认的播放器;
然后, 就是一步步实现逻辑啦:

播放/暂停

audio.play()播放音频;
audio.pause()暂停音频;
音频的播放与暂停, 就执行这两函数就行啦, 然后就是切换一下相关样式的class;

音频轨迹的拖动

手动控制音频的播放轨迹, 主要使用到touch相关的事件:

  1. touchstart时先获取小圆点的初始位置;

  2. touchmove时需要设置小圆点的移动位置, 播放的进度条以及播放的当前时间, 还得注意拖到最后及开始时还继续拖动的位置处理;

播放时间及总时间

获取音频总时间使用loadedmetadata事件:

当元数据(比如分辨率和时长)被加载时触发的事件;

然后在事件中调用audio.duration返回音频的长度(单位秒);

获取当前播放位置的时间用audio.currentTime

静音

静音直接设置audio.muted = true/false

有几个关键点需要注意:

  1. 当音频播放完毕后, 调用一下load()方法, 不然需要再次播放时得相刷新一下页面;

  2. 还是播放结束后, 需要手动重置小圆点的移动位置为 0;

  3. 手动拖动到最右边时, 最好是设置移动距离为 100% - 1, 不然直接拖动到结束会回到开始;

  4. 当在最开始就向左拖动时直接将移动距离设置为 0;

参考资料:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,我可以给你一些关于创建自定义HTML5音频播放器的建议。首先,你需要了解HTML5 audio元素的基本用法和属性。然后,你可以使用CSS来美化你的播放器,添加播放/暂停按钮、进度条和音量控制等功能。最后,你需要使用JavaScript来控制播放器的行为,例如播放、暂停、获取音频长度和当前进度等。 以下是一些可能有用的代码片段: 1. HTML5 audio元素: ```html <audio id="myAudio" src="audio.mp3"></audio> ``` 2. 播放/暂停按钮: ```html <button id="playButton">Play</button> ``` ```javascript var audio = document.getElementById("myAudio"); var playButton = document.getElementById("playButton"); playButton.addEventListener("click", function() { if (audio.paused) { audio.play(); playButton.innerHTML = "Pause"; } else { audio.pause(); playButton.innerHTML = "Play"; } }); ``` 3. 进度条: ```html <div id="progressBar"> <div id="progress"></div> </div> ``` ```css #progressBar { width: 100%; height: 10px; background-color: #ccc; } #progress { width: 0%; height: 100%; background-color: #000; } ``` ```javascript var audio = document.getElementById("myAudio"); var progressBar = document.getElementById("progressBar"); var progress = document.getElementById("progress"); audio.addEventListener("timeupdate", function() { var percent = (audio.currentTime / audio.duration) * 100; progress.style.width = percent + "%"; }); ``` 4. 音量控制: ```html <input type="range" id="volumeControl" min="0" max="1" step="0.1" value="1"> ``` ```javascript var audio = document.getElementById("myAudio"); var volumeControl = document.getElementById("volumeControl"); volumeControl.addEventListener("input", function() { audio.volume = volumeControl.value; }); ``` 希望这些代码片段能帮助你创建自定义HTML5音频播放器
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值