使用Python从windows media player获取当前播放的歌曲

2024-05-17 07:35:24 发布

您现在位置:Python中文网/ 问答频道 /正文

对于我正在编写的程序,我需要从windows media player获取当前正在播放的歌曲。在

我在google上搜索了很多,但我发现的一切都是关于通过windows媒体播放器播放音乐并从中获取信息的。在

我特别想要的是,有人开了全脂奶粉,还放了一首歌。我要知道那首歌的名字。在

我试过:

import win32com.client
wmp = win32com.client.gencache.EnsureDispatch('WMPlayer.OCX')

但是,这并不控制或处理当前打开的WMP实例。在

我还发现了一些关于将wmp.dllctypes一起使用的内容,但我不知道该在哪里查找或如何处理它。Related-source。在

有人能解释一下吗?也有其他一些关于同一个问题的帖子,但它们并没有真正帮助我。在


Tags: import程序client音乐windowsgoogle名字歌曲
1条回答
网友
1楼 · 发布于 2024-05-17 07:35:24
# start a normal play
from win32com.client import Dispatch
mp = Dispatch("WMPlayer.OCX")
tune = mp.newMedia("path of your mp3 or wav file")
mp.currentPlaylist.appendItem(tune)
mp.controls.play()
mp.controls.playItem(tune)


#play at a different rate eg 5x speed
from win32com.client import Dispatch
mp = Dispatch("WMPlayer.OCX")
tune = mp.newMedia("path of your mp3 or wav file")
mp.currentPlaylist.appendItem(tune)
mp.controls.play()
mp.settings.rate = 5
mp.controls.playItem(tune)


# pause , fastforward
from win32com.client import Dispatch
import time
mp = Dispatch("WMPlayer.OCX")
tune = mp.newMedia("path of your mp3 or wav file")
mp.currentPlaylist.appendItem(tune)
mp.controls.play()
mp.settings.rate = 1
mp.controls.playItem(tune)
time.sleep(5)
mp.controls.fastForward()
mp.controls.play()
time.sleep(5)
mp.controls.pause()
mp.controls.play()


# get some basic information from audio
mp.controls.currentPosition         # 19.2683872  a float represent seconds
mp.controls.currentPositionString   # '00:22'     a string
mp.controls.currentPositionTimecode   # eg "[00000]00:05:50.00" meaning 0 hr 5 mins 50 sec
mp.currentMedia.durationString       # length of audio in string
mp.currentMedia.duration            # length of audio in float

对于查看音频名称等方法,您可能需要查看一下u发布的官方网站,用法会类似。在

供参考: https://docs.microsoft.com/en-us/windows/desktop/wmp/controls-objecthttps://docs.microsoft.com/en-us/windows/desktop/wmp/media-name

你需要的代码可能是:

^{pr2}$

或者这个

 audio_name = mp.currentMedia.name()

祝你好运!在

相关问题 更多 >