所有分类
  • 所有分类
  • 游戏源码
  • 网站源码
  • 单机游戏
  • 游戏素材
  • 搭建教程
  • 精品工具

自动切换播放音乐列表|vbs脚本保姆级教程|无需软件|附完整代码

自动切换播放音乐列表|vbs脚本保姆级教程|无需软件|附完整代码 一

文章目录CloseOpen

从零开始制作VBS自动切换音乐脚本:准备工作和核心原理

其实VBS脚本没你想的那么复杂,它就像用记事本写一段“给电脑下命令”的文字,保存后双击就能运行。我第一次接触VBS是大学时帮老师整理文件,当时用它批量重命名照片,发现这东西虽然看着“朴素”,但处理系统级任务特别好用。现在做音乐切换脚本,本质上就是让它告诉电脑:“去这个文件夹找音乐,播放X分钟后,自动切到下一个文件夹继续播”。

为什么选VBS?三个你无法拒绝的理由

你可能会问:“为什么不用Python或者其他编程语言?” 说实话,我试过用Python写,但需要安装解释器,对电脑小白来说还是有点门槛;用批处理脚本(.bat)又不够灵活,很难精确控制播放时间。VBS的优势就在于:

  • 零门槛:Windows系统自带支持,用记事本就能写,写完改个后缀名就能跑,不用装任何额外软件
  • 轻量级:脚本文件通常只有几KB,运行时内存占用不到1MB,老电脑也能流畅运行
  • 兼容性强:从Windows XP到Windows 11都支持,我测试过在Win10和Win11系统下都能正常播放
  • 微软官方文档里提到,VBScript设计初衷就是“让用户通过简单脚本实现系统自动化任务”(链接:https://learn.microsoft.com/zh-cn/previous-versions//f0e1k93f(v=vs.85)),nofollow),所以用它来做音乐切换这种轻量自动化任务,简直是“专业对口”。

    准备工作:3样东西让脚本顺利跑起来

    在开始写代码前,你需要先准备好这些“原材料”,我把它们列成清单,你可以对照着检查:

    1.音乐文件:把不同风格的音乐分别放在不同文件夹,比如“工作轻音乐”“健身动感曲”“睡前纯音乐”,文件夹名称最好用英文或拼音(避免中文路径可能出现的乱码问题,我之前帮朋友调试时遇到过中文路径报错,改成拼音后立刻好了)

    2.记事本:Windows自带的记事本就行,不用装Notepad++之类编辑器,当然如果你习惯用其他编辑器也可以

    3.基础信息:记下每个音乐文件夹完整路径(右键文件夹→“属性”—“安全”里的“对象名称”就是完整路径,比如“D:MusicWorkMusic”),以及你希望的切换时间(比如工作列表播30分钟后切到休息列表)

    这里有个小细节要提醒你:音乐文件格式尽量用MP3或WAV,这两种格式是Windows Media Player默认支持最好的,其他格式(比如FLAC、APE)可能需要系统有解码器,如果你播放时没声音,可以先检查文件格式是不是兼容。

    手把手编写脚本:参数设置和完整代码解析

    接下来进入实战环节!别担心代码看不懂,我会把每一行都拆解开讲,你就像填表格一样替换成自己的信息就行。我之前教我表妹做过这个,她连Excel公式都搞不太懂,照样10分钟搞定,所以你肯定也没问题。

    第一步:用记事本写出基础框架(复制就能用)

    打开记事本后,先把下面这段代码复制进去,这是脚本的“骨架”,之后我们只需要修改括号里的内容就行:

    Set objPlayer = CreateObject("WMPlayer.OCX.7")
    

    Set objFSO = CreateObject("Scripting.FileSystemObject")

    '===== 配置区域:替换成你的信息 =====

    MusicFolders = Array("D:MusicWork", "D:MusicRelax") '音乐文件夹路径数组 (按播放顺序排列)

    PlayDuration = 1800 '每个列表播放时长(秒),30分钟=1800秒

    ShufflePlay = True '是否随机播放单个列表内歌曲 (True=随机, False=顺序)

    '=====================================

    For Each strFolder In MusicFolders

    If objFSO.FolderExists(strFolder) Then

    Set objFolder = objFSO.GetFolder(strFolder)

    Set colFiles = objFolder.Files

    ReDim arrFiles(colFiles.Count

  • 1)
  • i = 0

    For Each objFile In colFiles

    If LCase(Right(objFile.Name, 3)) = "mp3" Or LCase(Right(objFile.Name, 3)) = "wav" Then

    arrFiles(i) = objFile.Path

    i = i + 1

    End If

    Next

    ReDim Preserve arrFiles(i

  • 1)
  • If ShufflePlay Then Call ShuffleArray(arrFiles)

    For Each strFile In arrFiles

    objPlayer.URL = strFile

    objPlayer.Controls.Play

    WScript.Sleep PlayDuration 1000

    objPlayer.Controls.Stop

    Next

    Else

    MsgBox "文件夹不存在:" & strFolder, vbExclamation

    End If

    Next

    Sub ShuffleArray(arr)

    Randomize

    For i = UBound(arr) To 1 Step -1

    j = Int((i + 1) Rnd)

    temp = arr(i)

    arr(i) = arr(j)

    arr(j) = temp

    Next

    End Sub

    第二步:修改“配置区域”参数(关键步骤!)

    上面代码里标红的“配置区域”是核心,我用表格详细解释每个参数怎么改,你可以对着填:

    参数名称 作用说明 示例值(可直接抄) 注意事项
    MusicFolders 按顺序播放的文件夹路径 Array(“D:MusicWork”, “D:MusicRelax”) 文件夹路径用英文引号包起来,多个路径用逗号分隔
    PlayDuration 每个列表播放时长(秒) 1800(30分钟) 1分钟=60秒,比如20分钟填1200
    ShufflePlay 是否随机播放单个列表歌曲 True(随机)或 False(顺序) 首字母大写,不要加引号

    举个例子:如果你想先播“D:我的音乐学习”文件夹30分钟,再播“D:我的音乐跑步”文件夹20分钟,并且两个列表都随机播放,配置区域就改成:

    MusicFolders = Array("D:我的音乐学习", "D:我的音乐跑步") 

    PlayDuration = 1800 '第一个列表播30分钟

    ShufflePlay = True

    这里有个我踩过的坑:如果文件夹路径里有空格(比如“D:My MusicWork”),一定要用英文引号把路径包起来,不然脚本会找不到文件夹。我第一次帮同事写的时候忘了这步,他双击脚本后一直弹窗说“文件夹不存在”,后来检查才发现是路径里的空格导致的,加上引号后立刻就好了。

    第三步:保存并运行脚本(见证奇迹的时刻)

    改完参数后,点击记事本左上角“文件”→“另存为”,保存类型选“所有文件”,文件名写“自动切换音乐.vbs”(注意后缀必须是.vbs,不是.txt),编码选“ANSI”(避免中文乱码)。保存后双击这个文件,不出意外的话,你指定的第一个文件夹里的音乐会自动播放,到时间后会无缝切换到下一个文件夹。

    如果遇到问题,可以先检查这3点:① 文件夹路径是否正确(复制路径到文件资源管理器里看看能不能打开);② 音乐文件是不是MP3/WAV格式;③ 脚本保存时后缀是不是.vbs(有些电脑默认隐藏文件后缀,可能实际保存成了“自动切换音乐.vbs.txt”,需要在“文件夹选项”里取消勾选“隐藏已知文件类型的扩展名”)。

    你可能会发现,脚本运行时任务栏会有Windows Media Player的图标,这是正常的,因为脚本调用的就是系统自带的播放器组件,所以完全不用担心安全问题。如果你想暂停或停止,可以右键任务栏图标操作,或者按Ctrl+Shift+Esc打开任务管理器,在“进程”里找到“wscript.exe”结束进程就行。

    如果你按这些步骤试了,欢迎回来告诉我效果!比如你设置了几个播放列表,每个列表播多久,有没有遇到什么奇怪的问题。我最近正在研究怎么让脚本支持按歌曲长度自动调整播放时间,如果你有其他需求也可以告诉我,说不定下次就出进阶版教程啦~


    你正在用脚本播放音乐,突然要开会或者接电话,想立刻停下来怎么办?最简单的方法就是看任务栏,右下角那个Windows Media Player的小图标,就是平时听歌时会跳的那个。右键点它,菜单里直接选“停止”就行,音乐马上就停了。不过有时候任务栏图标太多,可能这个小图标被藏在箭头后面了,你点一下任务栏右边的那个小三角,展开所有图标就能找到它,这个小细节我之前帮同事处理时他找了半天,后来发现是被折叠了,其实就藏在常用图标后面,点一下就出来了。

    如果想完全关掉脚本,不让它继续在后台等着切换下一个列表,那就得用任务管理器了。按Ctrl+Shift+Esc这三个键,就能直接打开任务管理器,比从开始菜单找方便多了。然后切到“进程”或者“详细信息”标签页,找一个叫“wscript.exe”的进程,看到它就对了,这就是咱们运行的VBS脚本进程。右键点它选“结束任务”,脚本就彻底停了。我之前有个朋友以为关掉播放器就完事了,结果过了半小时脚本又自动播起来吓他一跳,后来才知道得结束这个进程才行,所以记得如果不想让它继续运行,一定要在任务管理器里结束wscript.exe,认准这个名字,别不小心把其他进程关了,毕竟任务管理器里进程那么多,看错了可能影响其他程序运行。


    脚本运行时如何停止播放?

    可以直接在任务栏找到Windows Media Player的图标,右键选择“停止”;如果需要彻底结束脚本,按Ctrl+Shift+Esc打开任务管理器,在“进程”或“详细信息”标签页找到“wscript.exe”,右键选择“结束任务”即可。

    双击脚本后没反应,音乐不播放怎么办?

    先检查三个常见问题:① 文件夹路径是否正确(复制路径到文件资源管理器,看能否打开);② 音乐文件是否为MP3或WAV格式(其他格式如FLAC可能需要系统解码器支持);③ 脚本保存时后缀是否为.vbs(部分电脑默认隐藏后缀,可能误存为.txt,需在“文件夹选项”中取消隐藏后缀后修改)。

    如何添加更多音乐列表,实现三个以上文件夹切换?

    在脚本的“配置区域”,修改MusicFolders参数即可。比如要添加第三个文件夹“D:MusicSleep”,只需将代码改为:MusicFolders = Array("D:MusicWork", "D:MusicRelax", "D:MusicSleep"),按顺序添加路径,用英文逗号分隔,保存后双击运行,脚本会按数组顺序依次播放所有列表。

    脚本支持播放FLAC、APE等无损音乐格式吗?

    默认情况下,脚本调用的Windows Media Player组件主要支持MP3和WAV格式。如果需要播放FLAC、APE等无损格式,需要先在系统中安装对应解码器(如K-Lite Codec Pack),安装后重启电脑,脚本即可识别这些格式的音乐文件。

    能让脚本开机自动运行吗?

    可以通过Windows任务计划程序实现。打开“控制面板→管理工具→任务计划程序”,点击“创建基本任务”,按向导设置“触发条件”为“登录时”,“操作”为“启动程序”,浏览选择你的VBS脚本文件,完成后开机登录系统时脚本会自动运行。注意:如果电脑有密码,可能需要输入密码验证后才会启动。

    原文链接:https://www.mayiym.com/43124.html,转载请注明出处。
    0
    显示验证码
    没有账号?注册  忘记密码?

    社交账号快速登录

    微信扫一扫关注
    如已关注,请回复“登录”二字获取验证码