当前位置:首页 > JavaScript

js实现音频轮播

2026-04-07 17:37:19JavaScript

实现音频轮播的基本思路

音频轮播通常指在网页中自动循环播放多个音频文件。可以通过JavaScript动态切换音频源并控制播放。

HTML结构准备

创建一个包含<audio>元素的容器,并设置必要的控制属性:

<audio id="audioPlayer" controls autoplay></audio>

JavaScript核心实现

定义音频列表和当前索引:

const audioList = [
  'audio1.mp3',
  'audio2.mp3',
  'audio3.mp3'
];
let currentIndex = 0;

获取音频元素并加载第一个音频:

js实现音频轮播

const audioPlayer = document.getElementById('audioPlayer');
audioPlayer.src = audioList[currentIndex];

添加事件监听实现自动轮播:

audioPlayer.addEventListener('ended', function() {
  currentIndex = (currentIndex + 1) % audioList.length;
  audioPlayer.src = audioList[currentIndex];
  audioPlayer.play();
});

增强功能实现

添加手动控制按钮:

<button id="prevBtn">上一首</button>
<button id="nextBtn">下一首</button>

实现按钮功能:

js实现音频轮播

document.getElementById('prevBtn').addEventListener('click', function() {
  currentIndex = (currentIndex - 1 + audioList.length) % audioList.length;
  audioPlayer.src = audioList[currentIndex];
  audioPlayer.play();
});

document.getElementById('nextBtn').addEventListener('click', function() {
  currentIndex = (currentIndex + 1) % audioList.length;
  audioPlayer.src = audioList[currentIndex];
  audioPlayer.play();
});

显示当前播放信息

添加显示当前曲目的元素:

<div id="nowPlaying">正在播放: <span id="currentSong"></span></div>

更新显示逻辑:

function updateDisplay() {
  document.getElementById('currentSong').textContent = 
    audioList[currentIndex].split('/').pop();
}

在每次切换音频时调用:

audioPlayer.addEventListener('play', updateDisplay);

完整示例代码

<!DOCTYPE html>
<html>
<head>
  <title>音频轮播示例</title>
</head>
<body>
  <audio id="audioPlayer" controls autoplay></audio>
  <div id="nowPlaying">正在播放: <span id="currentSong"></span></div>
  <button id="prevBtn">上一首</button>
  <button id="nextBtn">下一首</button>

  <script>
    const audioList = [
      'audio1.mp3',
      'audio2.mp3',
      'audio3.mp3'
    ];
    let currentIndex = 0;
    const audioPlayer = document.getElementById('audioPlayer');

    function loadAudio() {
      audioPlayer.src = audioList[currentIndex];
      audioPlayer.play();
    }

    function updateDisplay() {
      document.getElementById('currentSong').textContent = 
        audioList[currentIndex].split('/').pop();
    }

    audioPlayer.addEventListener('ended', function() {
      currentIndex = (currentIndex + 1) % audioList.length;
      loadAudio();
    });

    document.getElementById('prevBtn').addEventListener('click', function() {
      currentIndex = (currentIndex - 1 + audioList.length) % audioList.length;
      loadAudio();
    });

    document.getElementById('nextBtn').addEventListener('click', function() {
      currentIndex = (currentIndex + 1) % audioList.length;
      loadAudio();
    });

    audioPlayer.addEventListener('play', updateDisplay);
    loadAudio();
  </script>
</body>
</html>

标签: 音频js
分享给朋友:

相关文章

js实现复制

js实现复制

使用document.execCommand方法 在较旧的浏览器中,可以使用document.execCommand('copy')实现复制功能。创建一个临时的textarea或input元素,将需要…

js实现瀑布流

js实现瀑布流

实现瀑布流布局 瀑布流布局是一种常见的网页布局方式,常用于图片展示、商品列表等场景。以下是使用 JavaScript 实现瀑布流布局的几种方法。 纯 JavaScript 实现 通过计算元素的位置和…

js实现tab选项卡切换

js实现tab选项卡切换

实现Tab选项卡切换的JavaScript方法 使用纯JavaScript实现Tab切换功能,可以通过监听点击事件动态切换内容显示状态。以下是两种常见实现方式: 基础DOM操作实现 // 获取所有…

js实现变形

js实现变形

使用 CSS 和 JavaScript 实现元素变形 在 JavaScript 中实现变形效果通常结合 CSS 的 transform 属性,通过动态修改该属性实现元素的旋转、缩放、倾斜或平移。 基…

js树实现

js树实现

树的基本概念 树是一种非线性的数据结构,由节点和边组成。每个节点包含一个值和指向子节点的引用。树的顶部节点称为根节点,没有子节点的节点称为叶节点。 树的实现方式 在JavaScript中,树可以通过…

链表实现js

链表实现js

链表的基本概念 链表是一种线性数据结构,由一系列节点组成,每个节点包含数据和一个指向下一个节点的指针(单向链表)或两个指针(双向链表)。与数组不同,链表在内存中非连续存储,插入和删除操作更高效,但随机…