群友说可以用这个:https://aplayer.js.org/#/zh-Hans/
我也试试。
自定义 HTML (head)写入:
html展开代码<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/aplayer/dist/APlayer.min.css">
<script src="https://cdn.jsdelivr.net/npm/aplayer/dist/APlayer.min.js"></script>
自定义 HTML (body)写入(我依旧是那两首歌):
html展开代码<div id="aplayer"></div>
<style>
  /* 将播放器固定在屏幕右边中央 */
  .aplayer {
    position: fixed;
    right: 0;
    top: 50%;
    transform: translateY(-50%);
    width: 270px; /* 根据需要调整播放器的宽度 */
    z-index: 9999; /* 保证播放器位于页面的最上层 */
  }
</style>
<script>
  // 获取上次的播放进度和音频索引
  const savedTime = localStorage.getItem('aplayer-current-time');
  const savedIndex = localStorage.getItem('aplayer-current-index') || 0;
  // 初始化播放器
  const ap = new APlayer({
    container: document.getElementById('aplayer'),
    fixed: false, // 禁用吸底模式,使控件固定在右边
    autoplay: false, // 不自动播放
    listFolded: false, // 播放列表默认展开
    loop: 'all', // 顺序循环播放所有音频
    audio: [
      {
        name: '去海边.mp3',
        artist: 'Unknown Artist',
        url: '/static/music/output.mp3',
        cover: '',
      },
      {
        name: '病变.mp3',
        artist: 'Unknown Artist',
        url: '/static/music/output2.mp3',
        cover: '',
      }
    ]
  });
  // 恢复上次播放的音频和进度
  ap.list.switch(savedIndex); // 切换到上次播放的音频
  ap.audio.currentTime = savedTime || 0; // 恢复播放进度
  // 监听播放时间更新事件,将播放进度存储到localStorage
  ap.on('timeupdate', function () {
    localStorage.setItem('aplayer-current-time', ap.audio.currentTime);
  });
  // 监听音频切换事件,将当前音频索引存储到localStorage
  ap.on('listswitch', function (index) {
    localStorage.setItem('aplayer-current-index', index);
  });
  // 页面关闭或刷新时,保存播放状态
  window.addEventListener('beforeunload', function () {
    localStorage.setItem('aplayer-current-time', ap.audio.currentTime);
    localStorage.setItem('aplayer-current-index', ap.list.index);
  });
</script>
是要好看很多呢:

如果延续播放不行,就只有在body放这个代码了:
js展开代码
```html
<div id="aplayer"></div>
<style>
  /* 将播放器固定在屏幕右边中央 */
  .aplayer {
    position: fixed;
    right: 0;
    top: 50%;
    transform: translateY(-50%);
    width: 270px; /* 根据需要调整播放器的宽度 */
    z-index: 9999; /* 保证播放器位于页面的最上层 */
  }
</style>
<script>
  const ap = new APlayer({
    container: document.getElementById('aplayer'),
    fixed: false, // 禁用吸底模式,使控件固定在右边
    autoplay: false, // 不自动播放
    listFolded: false, // 播放列表默认展开
    loop: 'all', // 顺序循环播放所有音频
    audio: [
      {
        name: 'Output 1',
        artist: 'Unknown Artist',
        url: '/static/music/output.mp3', // 音乐文件1的URL
        cover: '', // 你可以添加封面图片URL
      },
      {
        name: 'Output 2',
        artist: 'Unknown Artist',
        url: '/static/music/output2.mp3', // 音乐文件2的URL
        cover: '', // 你可以添加封面图片URL
      }
    ]
  });
</script>
还是放最底下可以上拉吧,以上的代码全部不看,只把下面的代码给入body即可:
html展开代码<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/aplayer/dist/APlayer.min.css">
<script src="https://cdn.jsdelivr.net/npm/aplayer/dist/APlayer.min.js"></script>
<div id="aplayer"></div>
<style>
  /* 将播放器固定在底部,宽度调整为更适合的大小 */
  .aplayer {
    position: fixed;
    bottom: -400px; /* 播放器初始隐藏位置 */
    left: 50%; /* 居中显示 */
    transform: translateX(-50%); /* 将播放器在水平方向居中 */
    width: 320px; /* 自定义播放器的宽度 */
    z-index: 9999;
    transition: bottom 0.4s ease; /* 平滑过渡 */
  }
  /* 拉起后的状态 */
  .aplayer.open {
    bottom: 0; /* 拉起时显示在屏幕底部 */
  }
  /* 显示小标签,提示用户可以向上滑动 */
  #pull-tab {
    position: fixed;
    bottom: 0;
    left: 50%;
    transform: translateX(-50%);
    width: 320px; /* 与播放器宽度保持一致 */
    height: 30px;
    background-color: #333;
    color: white;
    text-align: center;
    line-height: 30px;
    cursor: pointer;
    z-index: 10000;
  }
</style>
<div id="pull-tab">拉起播放器</div> <!-- 显示在播放器上方的小标签,用来拉起播放器 -->
<script>
  // 获取上次的播放进度和音频索引
  const savedTime = localStorage.getItem('aplayer-current-time');
  const savedIndex = localStorage.getItem('aplayer-current-index') || 0;
  // 初始化播放器
  const ap = new APlayer({
    container: document.getElementById('aplayer'),
    fixed: false, // 禁用吸底模式
    autoplay: false, // 不自动播放
    listFolded: false, // 播放列表默认展开
    loop: 'all', // 顺序循环播放所有音频
    audio: [
      {
        name: '去海边.mp3',
        artist: 'Unknown Artist',
        url: '/static/music/output.mp3',
        cover: '',
      },
      {
        name: '病变.mp3',
        artist: 'Unknown Artist',
        url: '/static/music/output2.mp3',
        cover: '',
      }
    ]
  });
  // 恢复上次播放的音频和进度
  ap.list.switch(savedIndex); // 切换到上次播放的音频
  ap.audio.currentTime = savedTime || 0; // 恢复播放进度
  // 监听播放时间更新事件,将播放进度存储到localStorage
  ap.on('timeupdate', function () {
    localStorage.setItem('aplayer-current-time', ap.audio.currentTime);
  });
  // 监听音频切换事件,将当前音频索引存储到localStorage
  ap.on('listswitch', function (index) {
    localStorage.setItem('aplayer-current-index', index);
  });
  // 页面关闭或刷新时,保存播放状态
  window.addEventListener('beforeunload', function () {
    localStorage.setItem('aplayer-current-time', ap.audio.currentTime);
    localStorage.setItem('aplayer-current-index', ap.list.index);
  });
  // 切换播放器的显示状态
  const aplayerElement = document.querySelector('.aplayer');
  const pullTab = document.getElementById('pull-tab');
  let isOpen = false;
  pullTab.addEventListener('click', function() {
    isOpen = !isOpen;
    if (isOpen) {
      aplayerElement.classList.add('open');
      pullTab.innerHTML = '收起播放器';
    } else {
      aplayerElement.classList.remove('open');
      pullTab.innerHTML = '拉起播放器';
    }
  });
</script>


本文作者:Dong
本文链接:
版权声明:本博客所有文章除特别声明外,均采用 CC BY-NC。本作品采用《知识共享署名-非商业性使用 4.0 国际许可协议》进行许可。您可以在非商业用途下自由转载和修改,但必须注明出处并提供原作者链接。 许可协议。转载请注明出处!