html 音乐切换不暂停,web-audio-api可视化音乐播放器,实现暂停切换歌曲功能,粉色系专场~...

可视化的音乐播放器,可戳我观看效果

了解Web-Audio-Api

基础知识

标签是HTML5的新标签,通过添加src属性实现音乐播放。

AudioContext是音频播放环境,原理与canvas的绘制环境类似,都是需要创建环境上下文,通过上下文的调用相关的创建音频节点,控制音频流播放暂停操作等操作,这一些操作都需要发生在这个环境之中。

try{

var audioCtx = new (window.AudioContext || window.webkitAudioContext)();

}catch(e){

alert('Web Audio API is not supported in this browser');

}

AudioNode接口是一个处理音频的通用模块,它可以是音频音源模块,音频播放设备模块,也可以是中间音频处理模块。不同的音频节点的连接(通过AudioContext.connect()),以及终点连接AudioContext.destination(可以看作是连接到耳机或扬声器设备)完成后,才能输出音乐。

常见的音频节点:

AudioBufferSourceNode: 播放和处理音频数据

AnalyserNode: 显示音频时间和频率数据 (通过分析频率数据可以绘制出波形图之类的视图,可视化的主要途径)

GainNode: 音量节点,控制音频的总音量

MediaElementAudioSourceNode: 关联HTMLMediaElement,播放和处理来自和元素的音频

OscillatorNode: 一个周期性波形,只创建一个音调

...

运行模式

创建音频上下文

在上下文中,创建音频源

创建音频节点,处理音频数据并连接

输出设备

3dc87d971b10

image

创建音频上下文

try{

var audioCtx = new (window.AudioContext || window.webkitAudioContext)();

}catch(e){

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是一个简单的HTML5 JS音乐播放器示例: HTML代码: ``` <div id="music-player"> <audio id="audio-player"></audio> <div id="controls"> <button id="play-btn">播放</button> <button id="pause-btn">暂停</button> <button id="prev-btn">上一首</button> <button id="next-btn">下一首</button> </div> <div id="current-track"></div> </div> ``` JS代码: ``` // 歌曲列表 var tracks = [ { name: "歌曲1", src: "music1.mp3" }, { name: "歌曲2", src: "music2.mp3" }, { name: "歌曲3", src: "music3.mp3" } ]; var currentIndex = 0; // 当前播放曲目索引 var audioPlayer = document.getElementById("audio-player"); var playBtn = document.getElementById("play-btn"); var pauseBtn = document.getElementById("pause-btn"); var prevBtn = document.getElementById("prev-btn"); var nextBtn = document.getElementById("next-btn"); var currentTrack = document.getElementById("current-track"); // 初始化 currentTrack.innerHTML = tracks[currentIndex].name; audioPlayer.src = tracks[currentIndex].src; // 播放按钮点击事件 playBtn.addEventListener("click", function() { audioPlayer.play(); }); // 暂停按钮点击事件 pauseBtn.addEventListener("click", function() { audioPlayer.pause(); }); // 上一首按钮点击事件 prevBtn.addEventListener("click", function() { currentIndex--; if (currentIndex < 0) { currentIndex = tracks.length - 1; } currentTrack.innerHTML = tracks[currentIndex].name; audioPlayer.src = tracks[currentIndex].src; audioPlayer.play(); }); // 下一首按钮点击事件 nextBtn.addEventListener("click", function() { currentIndex++; if (currentIndex >= tracks.length) { currentIndex = 0; } currentTrack.innerHTML = tracks[currentIndex].name; audioPlayer.src = tracks[currentIndex].src; audioPlayer.play(); }); // 监听音频播放结束事件 audioPlayer.addEventListener("ended", function() { currentIndex++; if (currentIndex >= tracks.length) { currentIndex = 0; } currentTrack.innerHTML = tracks[currentIndex].name; audioPlayer.src = tracks[currentIndex].src; audioPlayer.play(); }); ``` 当用户点击播放、暂停、上一首、下一首按钮时,JS代码会分别调用`audioPlayer`的`play()`、`pause()`、更改`src`并`play()`等方法来实现音乐播放器的基本功能。同时,通过监听`audioPlayer`的`ended`事件,可以实现歌曲播放结束后自动切换到下一首。当前播放曲目的名称通过JS代码更改`currentTrack`的`innerHTML`来实现

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值