首页 > 解决方案 > 如何使用 vbscript 从目录中随机播放声音文件

问题描述

我试图让 windows 在 windows 开始时运行这个 vbs 文件,以便计算机可以用我制作并保存为 wav 文件的短语来迎接我。

我已经有一个 vbs 文件,它可以在其中播放声音文件,但我希望它从特定目录中随机选择一个,这样它就不会一遍又一遍地听到同样的声音,再加上一个惊喜因素,因为我没有每次启动电脑都不知道用哪个。

Dim oPlayer
Set oPlayer = CreateObject("WMPlayer.OCX")

' Play audio
oPlayer.URL = "C:\Users\david\OneDrive\Desktop\GLaDOS 
wav\Edited\hello_david_youre_back_i_see.wav"
oPlayer.controls.play 
While oPlayer.playState <> 1 ' 1 = Stopped
WScript.Sleep 100
Wend

' Release the audio file
oPlayer.close

提前感谢您的帮助。

标签: vbscript

解决方案


Option Explicit

Dim oFolderItems
Dim oFolderItem
Dim aFiles

Set oFolderItems = CreateObject("Shell.Application").NameSpace("C:\Users\david\OneDrive\Desktop\GLaDOSwav\Edited").Items
oFolderItems.Filter 64 + 128, "*.wav"
With CreateObject("Scripting.Dictionary")
    For Each oFolderItem In oFolderItems
        .Item(.Count) = oFolderItem.Path
    Next
    aFiles = .Items
End With
Randomize
With CreateObject("WMPlayer.OCX")
    .URL = aFiles(Int(Rnd * UBound(aFiles) + 1))
    .controls.play 
    Do While .playState <> 1
        WScript.Sleep 100
    Loop
    .close
End With

推荐阅读