精华区 [关闭][返回]

当前位置:网易精华区>>讨论区精华>>编程开发>>● VFP>>〖源码共赏〗>>〖MP3 和 VCD 播放器的源代码〗>>MP3 和 VCD 播放器的源代码.这个例子供面向对象编程参考.(一)

主题:MP3 和 VCD 播放器的源代码.这个例子供面向对象编程参考.(一)
发信人: 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

[关闭][返回]