熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Java編程 >> Java核心技術 >> 正文

分享——一個簡單的MP3播放器的制作

2013-11-23 19:05:04  來源: Java核心技術 

  利用API函數[mciSendString]可以輕松實現MP音樂文件的播放下面這段程序實現了MP播放的大部分常規操作對其稍加修改做一個KB大小的MP播放器輕而易舉
  啟動VB程序在窗體上放置個命令按鈕三個標簽一個公用對話框一個進度條一個狀態欄和一個計時器窗本的布置請參考附圖
  
  按鈕Open MP File是用來打開對話框選擇MP文件其他個按鈕分別為Play(播放)Pause(暫停)Stopplay(停止播放)Back(向後跳躍)Prew(向前跳躍)Label用來表示歌曲當前時間label放在時度條的最左邊Caption屬性為lable放在時度條的右邊用來表示歌曲總長
  
  下面就可以編寫代碼了首先在窗體的通用聲明部分聲明函數
  Private Declare Function mciSendString Lib winmmdll Alias mciSendStringA(Byval lpstrCommand As StringByVal lpstrRetumString As StringByVal uReturnLength As longByVal hwndCallback as long) As long
  
  Dim mfn As String
  
  下面就是各個對象的代碼了
  Private Sub Form_load()
  mfn=
  playEnabled=False
  pauseEnabled=False
  StopplayEnabled=False
  backEnabled=False
  prewEnabled=False
  TimerEnabled=False
  TimerInterval=
  End Sub
  
  Private Sub open_Click()
  On Error Goto err
  With CommonDialog
  CancelError=True
  Filter=音樂文件|*mp;*wav;*mid
  Flags=cdlOFNNoChangeDir And cdlOFNPathMustExist
  Action=
  stopplay_Click 停止按鈕同時可以設備初始化
  mfn=FileName 這個程序中文件名一定不能帶空格
  FormCaption=FileName
  playEnabled=True
  End With
  play_Click
  Exit Sub
  err:
  End Sub
  
  Private Sub play_Click()
  On Error Resume Next
  Dim t As Long
  t=mciSendString(open + mfn&) Open後邊的空格一定不能丟
  Dim ret As String *
  t=mciSendString(status + mfn + lengthret)
  顯示歌曲總長
  ret=Left(ret)
  If ret<> Then
  ProgressBarMin=
  ProgressBarMax=Val(ret)
  LabelCaption=gettime(Val(ret))
  End If
  playEnabled=False
  pauseEnabled=True
  stopplayEnabled=True
  backEnabled=True
  prewEnabled=True
  t=mciSendString(status + mfn + moderet)
  得到設備的當前狀態是播放還是暫停等等
  ret=Left(ret)
  StatusBarPanels()text=ret
  在狀態欄顯示播放狀態
  t=mciSendString(play + mfn + form + Str(ProgressBarValue)&)
  開始播放
  TimerEnabled=True
  End Sub
  
  Private Sub pause_Click()
  t%=mciSendString(pause + mfn&)
  發出暫停的命令
  playEnable=True
  pauseEnabled=False
  stopplayEnabled=True
  backEnabled=False
  prewEnabled=False
  End Sub
  
  Private Sub stopplay_Click()
  t%=mciSendString(stop + mfn&)
  t%=mciSendString(close + mfn&)
  停止播放
  playEnabled=True
  pauseEnabled=False
  stopplayEnabled=False
  backEnabled=False
  prewEnabled=False
  End Sub
  
  Private Sub back_Click()
  t%=mciSendString(play + mfn + from + Str(ProgressBarValue(ProgressBarMax\))&) 向後跳一小段再播放
  End Sub
  
  Private Sub prew_Click()
  t%=mciSendString(play + mfn + from + Stri(ProgressBarValue+(ProgressBarMax\))&) 向前跳一小段再播放
  End Sub
  
  Private Sub Timer_Timer()
  Dim t As Long
  Dim ret As String *
  t=mciSendString(status + mfn + positionret)
  得到當前播放位置
  ret=left(ret)
  ProgressBarValue=Val(ret)
  LabelCaption=gettime(Val(ret))
  顯示歌曲當前時間
  If ProgressBarValue=ProgressBarMax Then
  stopplay_Click
  End If
  t=mciSendString(status + mfn + moderet)
  ret=Left(ret)
  StatusBarPanels()Text=ret
  End Sub
  
  Private Sub Form_Unload(Cacel As Integer)
  t%=mciSendString(stop + mfn&)
  t%=mciSendString(close + mfn&)
  End Sub
  
  Private Function Gettime(position As Long) As String
  這個函數的功能是把以長整型表示的時間轉換為電子鐘式的**:**
  Dim minsec
  min=position/
  min=min/
  sec=minInt(min)
  min=Int(min)
  sec= * sec /
  sec=Int(sec * )
  gettime=Str(min) + : + Str(sec)
  End Function
  
  圖中個控制按鈕其實是把字體設為Webdings讓它們的Caption屬性分別為 ; <" "7" "8"
  就可以了
  

From:http://tw.wingwit.com/Article/program/Java/hx/201311/26246.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.