Automating windows media player on win7

Deogratius Musiige DMusiige at
Wed Jul 23 11:20:37 CEST 2014

Hi mate,

The fix you provided works perfect. However, if I put it in a class and import, make instance and execute in another file, the audio is not played.

What am I missing? This is what I do:
class WMPlayer():
    #static var
    #first instance is a primary , following are secondary.
    #you can have one primary and as many secondary as you like
    def __init__(self):
        init all attributes
        ''' = Dispatch("WMPlayer.OCX")

    def play_song(self):
        mp = Dispatch("WMPlayer.OCX")
        tune = mp.newMedia(r"./SleepAway.mp3")
        raw_input("Press Enter to stop playing")


from wmp.WMPlayer import *

class sTest(unittest.TestCase):

    def test_wmplayer(self):
        self.wmp = WMPlayer()


Best regards / Med venlig hilsen

Deogratius Musiige

Sennheiser Communications A/S

Direct                 +45 5618 0320

-----Original Message-----
From: Python-list [ at] On Behalf Of Deogratius Musiige
Sent: 6. juni 2014 15:39
To: MRAB; python-list at
Subject: RE: Automating windows media player on win7

Thanks a lot mate.

You just made my day.

I have looked around the net but cannot find the controls available.

I would like to be able to:

- get current playing track

- get wmplayer state (playing/paused/stopped)

- get the selected sound device

Thanks a lot



-----Original Message-----

From: Python-list [ at] On Behalf Of MRAB

Sent: 4. juni 2014 21:23

To: python-list at<mailto:python-list at>

Subject: Re: Automating windows media player on win7

On 2014-06-03 09:10, Deogratius Musiige wrote:

> Hi guys,


> I have been fighting with automating wmplayer but with no success.


> It looks to me that using the .OCX would be the best option. I found

> the code below on the net but I cannot get it to work.


> I can see from device manager that a driver is started by I get no

> audio out.


> What am I doing wrong guys?


> # this program will play MP3, WMA, MID, WAV files via the

> WindowsMediaPlayer from win32com.client import Dispatch


> mp = Dispatch("WMPlayer.OCX")

> tune = mp.newMedia("./plays.wav")

> mp.currentPlaylist.appendItem(tune)


> raw_input("Press Enter to stop playing")

> mp.controls.stop()


I've found that adding PlayItem and sleep seems to work:

#! python2.7

# -*- coding: utf-8 -*-

from win32com.client import Dispatch

from time import sleep

mp = Dispatch("WMPlayer.OCX")

tune = mp.NewMedia(r"./plays.wav")





raw_input("Press Enter to stop playing")



-------------- next part --------------
An HTML attachment was scrubbed...
URL: <>

More information about the Python-list mailing list