发信人: coolyylu(GoodDay)
整理人: hunter__fox(2002-03-16 20:43:18), 站内信件
|
Player = NEWOBJECT("player")
READ EVENTS
*---- 定义多媒体播放器
DEFINE CLASS player as Session OLEPUBLIC
*---- 播放歌曲列表
oSongList = .F.
*---- 播放窗口
oSongWindow = .F.
*---- 控制面板
oPanel = .F.
*---- 释放变量
vReleaseVar = 'Player'
PROCEDURE Init
LPARAMETERS tcReleaseVar
*---- 设置释放变量
*this.vReleaseVar = tcReleaseVar
this.oSongWindow = NEWOBJECT("SongShow")
this.oSongList = NEWOBJECT("SongList")
this.oPanel = NEWOBJECT("PlayerPanel")
*----设置根
this.oSongList.oRoot = this
this.oSongWindow.oRoot = this
this.oPanel.oRoot = this
*---- 设置播放媒体控件
this.oSongList.oPlayer = this.oSongWindow.olePlayer
this.oSongList.Show()
this.oPanel.Stick()
this.oPanel.Show()
ENDPROC
PROCEDURE Release
CLEAR EVENTS
This.oSongList.oRoot = .F.
This.oSongWindow.oRoot = .F.
This.oPanel.oRoot = .F.
vReleaseVar = this.vReleaseVar
RELEASE (vReleaseVar)
ENDPROC
ENDDEFINE
*---- 播放窗口
DEFINE CLASS SongShow as BaseForm
*---- 引用根对象
oRoot = .F.
*---- 增加播放控件 ,属于微软的播放控件
ADD OBJECT cmdFull As CommandButton WITH Caption = "全屏\<F" ,AutoSize = .T. ,SpecialEffect = 2
ADD OBJECT olePlayer AS olecontrol WITH oleclass = 'mediaplayer.mediaplayer.1' ,OleLCID = 1033 ,EnableContextMenu = .F.
*---- 将播放界面设置为独立窗口
showwindow = 2
*---- 调整播放器控件的尺寸
PROCEDURE init
this.olePlayer.width = this.Width
this.olePlayer.Top = 20
this.olePlayer.height = this.Height - this.olePlayer.Top
this.cmdFull.Left = this.Width - this.cmdFull.Width
ENDPROC
*---- 调整播放器控件的尺寸
PROCEDURE Resize
this.olePlayer.width = this.Width
this.olePlayer.height = this.Height - this.olePlayer.Top
this.cmdFull.Left = this.Width - this.cmdFull.Width
ENDPROC
PROCEDURE cmdFull.Click
ThisForm.oRoot.oPanel.Hide
ThisForm.olePlayer.DisplaySize = 3
ENDPROC
*---- 当每首音乐播放完毕后,自动进入下一首
*---- 判断播放的状态
PROCEDURE olePlayer.EndOfStream
LPARAMETERS Result
*---- 歌曲播放完毕
IF RECNO("SongList") # RECCOUNT("SongList")
SKIP IN SongList
ELSE
GO 1 IN SongList
ENDIF
this.fileName = ALLTRIM(SongList.FileName)
ENDPROC
*---- 设置根对象引用释放
PROCEDURE Destroy
this.oRoot = .F.
ENDPROC
ENDDEFINE
|
|