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