是否可以使用VBS脚本获取当前歌曲在WMP中播放的名称?我的目标是拥有一个包含当前播放歌曲名称的.txt文件。我正在使用一个可以显示文件文本的直播程序(OBS),因为有很多人在流媒体时问我播放列表,我想让OBS显示当前歌曲的名称。为了实现这一点,我只是将它的“当前歌曲”文本更改为我桌面上的currentsong.txt中的任何内容,但我只是不知道如何更新该txt以包含当前歌曲。
我在Google上搜索过,但我找不到任何方法来获取当前的MWP歌曲:(
请帮助:(
答案 0 :(得分:1)
注意:只有在达到负载状态“转换”时才能检索序列信息。
Option Explicit
Dim Sound,Name,NameLog,fso,ws
Set fso = CreateObject("Scripting.FileSystemObject")
Set ws = CreateObject("wscript.Shell")
Set Sound = CreateObject("WMPlayer.OCX.7")
Sound.URL = "C:\FaceSong.mp3"
'Disable the sound
Sound.settings.mute = True
Sound.Controls.play
'Note: Retrieving information on a sequence can be done only when the load status "Transitioning" is reached.
While Sound.playState = 9
Name = Sound.currentMedia.getItemInfo("Name")
NameLog = Name & ".txt"
if fso.FileExists(NameLog) Then
fso.DeleteFile NameLog
end If
MsgBox Name,VbInformation,Name
Call WriteLog(Name,NameLog)
Wend
ws.run NameLog
'***********************************************************************************************
Sub WriteLog(strText,LogFile)
Dim fs,ts
Const ForAppending = 8
Set fs = CreateObject("Scripting.FileSystemObject")
Set ts = fs.OpenTextFile(LogFile,ForAppending,True)
ts.WriteLine strText
ts.Close
End Sub
'************************************************************************************************
答案 1 :(得分:0)
您需要阅读媒体播放器的文档(所以当您在互联网上查看时,您确实查看了它所在的MSDN.com,例如所有Microsoft的文档?)。如果你有一个编程IDE(比如Office中的VBA),那就使用它的对象浏览器。
启动办公室应用,按Alt + F11,然后按F2。
右键单击某处,然后从列表中选择引用添加Windows Media Player。将所有库的下拉列表更改为 Media Player 。
你有一个文件名属性。以及获取歌曲任何信息的方法。
Property FileName As String
Member of MediaPlayer.MediaPlayer
Returns or sets the current file name and path
和
Function GetMediaInfoString(MediaInfoType As MPMediaInfoType) As String
Member of MediaPlayer.MediaPlayer
Returns an Information String for the Media
请记住,VBS无法访问类型库,因此您必须使用常量值而不是常量名称。因此,在上文中,您将使用8
而非mpClipTitle
来获取标题。