Pythoncom scripting Windows Media Player & visible

Stefan Schukat SSchukat at dspace.de
Wed Aug 3 02:44:40 EDT 2005


Hello, 

you have to put the ocx in a container window (e.g. a dialog or the IE).
Without this the media player just acts like a normal COM object.

Example for the dialog you can find in 
[Pythonroot]\Lib\site-packages\pythonwin\pywin\Demos\ocx

	Bye

		Stefan

> -----Original Message-----
> From: python-list-bounces+sschukat=dspace.de at python.org 
> [mailto:python-list-bounces+sschukat=dspace.de at python.org] On 
> Behalf Of Bill Eldridge
> Sent: Tuesday, August 02, 2005 6:15 PM
> To: python-list at python.org
> Subject: Pythoncom scripting Windows Media Player & visible
> 
> 
> I'm trying to make Windows Media Player visible and control 
> it from Python. It seems when I call it below, I get only the 
> console version, and there's no Visible method like with 
> Internet Explorer.
> I do catch events, but I need it visible.
> Should it be put into a panel instead?
> Should a different type dispatch be called or a different 
> method? it seems that there are a console and a windows 
> classes in the COM browser, but I can't seem to access any 
> useful windows classes.
> I get "fullScreen" as False, but can't set it.
> openPlayer(address) will launch a visible window, but with no 
> control of the the window after that.
> 
> Ideas?
> 
> from win32com.client import Dispatch,DispatchWithEvents
> 
> class WMPEvents:
>     def OnVisible(self,evt):
>         print "OnVisible changed:",evt
>     def OnError(self,evt=None):
>         print "OnError",evt
>     def OnMediaError(self,evt=None):
>         print "OnMediaError",evt
>     def OnDisconnect(self,evt):
>         print "OnDisconnect",evt
>     def OnStatusChange(self):
>         print "OnStatusChange"
>     def OnDisconnect(self,evt):
>         print "Disconnect",evt
>     def OnBuffering(self,evt):
>         print "OnBuffering changed:",evt
>     def OnOpenStateChange(self,evt=None):
>         print "OnOpenStateChange" ,evt
>        
> mp = DispatchWithEvents("WMPlayer.OCX.7",WMPEvents)
> mp.Visible = True   # Does nothing
> tune = mp.newMedia("C:/WINDOWS/system32/oobe/images/title.wma")
> mp.currentPlaylist.appendItem(tune)
> mp.controls.playItem(tune)
> mp.controls.play()
> raw_input("Press enter to stop playing")
> mp.controls.stop()
> 
> --
> http://mail.python.org/mailman/listinfo/python-list
> 

The "Leading Manufacturing Test Company of the Year 2005"
http://www.dspace.de/goto?f_s_award



More information about the Python-list mailing list