.VBS获取当前的Windows Media Player歌曲名称

时间:2014-08-14 22:24:58

标签: vbscript media-player

是否可以使用VBS脚本获取当前歌曲在WMP中播放的名称?我的目标是拥有一个包含当前播放歌曲名称的.txt文件。我正在使用一个可以显示文件文本的直播程序(OBS),因为有很多人在流媒体时问我播放列表,我想让OBS显示当前歌曲的名称。为了实现这一点,我只是将它的“当前歌曲”文本更改为我桌面上的currentsong.txt中的任何内容,但我只是不知道如何更新该txt以包含当前歌曲。

我在Google上搜索过,但我找不到任何方法来获取当前的MWP歌曲:(

请帮助:(

2 个答案:

答案 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来获取标题。