[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[原创代码] mshta/Jscript 简版mp3音频播放器

本帖最后由 aloha20200628 于 2025-4-8 22:42 编辑


分享一个以前拿 mshta/jscript 代码练手的简单版本,用 mshta@ie11 引擎,对指定的目录创建其中的全部 mp3 文件播放列表,借助 html5 支持的 <audio> 标签功能,实现播放列表的循环播放,上一首(-)下一首(+)跳转播放,在 ‘窗口标题行’ 实时显示当前播放曲目及时长信息(代码第3行中的 w 值定义窗口宽度,增大以便容纳较长的实显 mp3 文件名信息)
以下代码存为 test.hta 运行,代码第25行定义 mp3 音频文件所在目录(须为全路径,其中路径分隔符要用两个反斜线)
  1. <meta http-equiv='x-ua-compatible' content='ie=11'>
  2. <script>
  3.     w=850, h=185, resizeTo(w, h), moveTo((screen.width-w)/2, (screen.height-h)/2);
  4. </script
  5. <title> </title><center>
  6. <audio id='mp3' controls='controls'><source src='' type='audio/mpeg'></audio></br>
  7. <button id='_B'>【 - 】</button><button id='B_'>【 + 】</button></center>
  8. <script>
  9.   function play_mp3(i) {
  10.     mp3.src=pl[i];
  11.     setTimeout(function() {
  12.         l=mp3.duration, m=parseInt(l/60), s=Math.round(l%60);
  13.         l=m+':'+('0'+s).substr(-2), nF=pl[i].split('\\').slice(-1)[0].slice(0,-4);
  14.         document.title='播放》'+l+'【'+nF+'】' }, 100)
  15.     mp3.play(); }
  16.   //
  17.   mp3.addEventListener('ended', function() {
  18.       cI=(cI+1) % pl.length, play_mp3(cI); });
  19.   //
  20.   _B.addEventListener('click', function() {
  21.       cI=(cI-1+pl.length) % pl.length, play_mp3(cI); });
  22.   B_.addEventListener('click', function() {
  23.       cI=(cI+1) % pl.length, play_mp3(cI); });
  24.   //
  25.   dir_mp3="D:\\mp3\\流行音乐";
  26.   new ActiveXObject('WScript.shell').currentdirectory=dir_mp3;
  27.   fso=new ActiveXObject('Scripting.FileSystemObject');
  28.   d=fso.GetFolder(dir_mp3), f=new Enumerator(d.files), pl=[];
  29.   for (; !f.atEnd(); f.moveNext())
  30.      if (fso.getExtensionName(f.item().name.toLowerCase())=='mp3')
  31.         pl.push(f.item().path);
  32.   cI=0, play_mp3(cI);
  33. </script>
复制代码

返回列表