Fox plays music
I received a customer question:
I have searched the net and asked as many people as I could and could not get an answer, so I am bothering you.
Do you know of a way to get VFP to play mp3 format tunes? There must be a way to use a media player driver or ActiveX to make this happen. Any ideas?
For a simple way to start an mp3 file, try this in the command window:
!start d:\piano.mp3
A more elegant solution: try out the Fox Media player that comes with VFP9: Start the Task Pane: choose Solution Samples->New in VFP 9->Fox Media Player
Or you can run this code from that sample. (I tried it in VFP8 and it works: I had to remove some VFP 9 specific features, such as anchoring).
playit("D:\piano.mp3")
*playit("D:\Calvinh\My Music\Claude Bolling\2003. Pariswing\02. La Mer.wma")
PROCEDURE playit(tcURL, tnDrive)
LOCAL loError, loCD
IF VARTYPE(tcURL)#"C" OR EMPTY(tcURL)
* Sample URL
tcURL = "https://radio.livephish.com:8000"
ENDIF
IF TYPE("_SCREEN.oWMP")#"O"
_SCREEN.ADDOBJECT("oWMP","WMPContainer")
WITH _SCREEN.oWMP
.HEIGHT = _SCREEN.HEIGHT
.WIDTH = _SCREEN.WIDTH
.VISIBLE=.T.
ENDWITH
ENDIF
IF UPPER(tcURL)=="CD"
IF tnDrive = -1
RETURN
ENDIF
loCD = _SCREEN.oWMP.oleWMP.cdromCollection.ITEM(tnDrive)
_SCREEN.oWMP.oleWMP.currentPlaylist = loCD.Playlist
ELSE
_SCREEN.oWMP.oleWMP.url = tcURL
ENDIF
*---------- CLASSES ----------------------------------
DEFINE CLASS WMPContainer AS CONTAINER
oWMPToolBar = NULL
ADD OBJECT oleWMP AS OLECONTROL WITH ;
OLECLASS = 'WMPlayer.OCX'
ADD OBJECT tmrWMP1 AS tmrWMP
PROCEDURE INIT
THIS.oleWMP.WIDTH = THIS.WIDTH
THIS.oleWMP.HEIGHT = THIS.HEIGHT
THIS.oWMPToolBar = ;
NEWOBJECT('WMPToolBar', SYS(16), NULL, THIS)
THIS.oWMPToolBar.VISIBLE = .T.
ENDPROC
PROCEDURE RELEASE
_SCREEN.LOCKSCREEN = .T.
THIS.REMOVEOBJECT('oleWMP')
RELEASE THIS
_SCREEN.LOCKSCREEN = .F.
ENDPROC
PROCEDURE oleWMP.DoubleClick(p1,p2,p3,p4)
THIS.VISIBLE = .F.
THIS.PARENT.VISIBLE = .F.
THIS.PARENT.oWMPToolBar = NULL
THIS.PARENT.tmrWMP1.ENABLED = .T.
ENDPROC
ENDDEFINE
*--------------------------------------------
DEFINE CLASS WMPToolBar AS TOOLBAR
SHOWTIPS = .T.
CAPTION = 'Fox Media Player'
WMPContainer = NULL
ADD OBJECT CmdClose AS COMMANDBUTTON WITH ;
TOOLTIPTEXT = 'Close Fox Media Player', ;
PICTURE = HOME() + 'tools\test\close.bmp', ;
SPECIALEFFECT = 2, ;
HEIGHT = 22, WIDTH = 140
PROC INIT(WMPContainer AS OBJECT)
THIS.WMPContainer = WMPContainer
ENDPROC
PROCEDURE CmdClose.CLICK
THIS.PARENT.WMPContainer.oleWMP.DoubleClick()
ENDPROC
ENDDEFINE
*--------------------------------------------
DEFINE CLASS tmrWMP AS TIMER
INTERVAL = 500
ENABLED = .F.
PROCEDURE TIMER
THIS.PARENT.RELEASE()
ENDPROC
ENDDEFINE
46181