我使用MMControl播放MPG文件,设置单步播放功能时,我使用了如下指令:
MMC1.COMMAND="STEP"
MMC1.FRAMES=1
但程序运行时经常出现跳帧情况,有时侯时往前跳几帧,然后不动等待播放器播放至该位置后再继续,有时侯是来回跳动,不知道是什么原因造成这种情况?在线等...
MMC1.COMMAND="STEP"
MMC1.FRAMES=1
但程序运行时经常出现跳帧情况,有时侯时往前跳几帧,然后不动等待播放器播放至该位置后再继续,有时侯是来回跳动,不知道是什么原因造成这种情况?在线等...
Private Sub cmdSelectMP3_Click() On Error GoTo errhandle
bolStepShow = False
cdStepCreater.CancelError = True
cdStepCreater.Filter = "录像(*.MPG)|*.MPG|其它格式(*.AVI)|*.AVI"
cdStepCreater.Flags = cdlOFNNoChangeDir And cdlOFNPathMustExist
cdStepCreater.InitDir = "D:\D-Tech"
cdStepCreater.DialogTitle = "请选择你的MPG播放文件"
cdStepCreater.ShowOpen
txtMP3Path.Text = cdStepCreater.FileName
Dim strTemp_01, strTemp_02 As String
mmcMPG.Refresh
strTemp_01 = Trim(txtMP3Path.Text)
strTemp_02 = Right(strTemp_01, 3)
Select Case strTemp_02
Case "AVI"
mmcMPG.DeviceType = "AVIvideo"
Case "MPG"
mmcMPG.DeviceType = "MPEGvideo"
End Select Exit Sub
errhandle:
txtMP3Path.Text = ""
End SubPrivate Sub cmdMP3Play_Click()
mmcMPG.FileName = txtMP3Path.Text
mmcMPG.hWndDisplay = picMPG.hWnd mmcMPG.Command = "Open" '显示歌曲总长
If mmcMPG.Length <> 0 Then
ProgressBar1.min = 0
ProgressBar1.Max = mmcMPG.Length * 40
lblMP3All.Caption = Gettime(mmcMPG.Length * 40)
End If
cmdMP3Play.Enabled = False
cmdSelectMP3.Enabled = False
cmdMP3Pause.Enabled = True
cmdMP3StopPlay.Enabled = True
cmdMP3Back.Enabled = False
cmdMP3Prew.Enabled = False
'开始播放
mmcMPG.Command = "Play"
Timer1.Enabled = True
End Sub
Private Sub cmdMP3Pause_Click()
'发出暂停的命令
mmcMPG.Command = "Pause" cmdMP3Play.Enabled = True
cmdMP3Pause.Enabled = False
cmdMP3StopPlay.Enabled = True
cmdMP3Back.Enabled = True
cmdMP3Prew.Enabled = True
End SubPrivate Sub cmdMP3StopPlay_Click()
'停止播放
mmcMPG.Command = "Stop"
mmcMPG.Command = "Close"
cmdMP3Play.Enabled = True
cmdSelectMP3.Enabled = True
cmdMP3Pause.Enabled = False
cmdMP3StopPlay.Enabled = False
cmdMP3Back.Enabled = False
cmdMP3Prew.Enabled = False
End SubPublic Sub cmdMP3Back_Click()
Dim X, Y As Long
Dim dbTempNow As Double Y = Val(txtShowTime.Text)
dbTempNow = Y / 40
X = Int(dbTempNow)
mmcMPG.From = X
mmcMPG.Command = "Back"
mmcMPG.Frames = 1
mmcMPG.Refresh
End Sub
Public Sub cmdMP3Prew_Click()
Dim X, Y As Long
Dim dbTempNow As Double
X = Val(txtShowTime.Text)
mmcMPG.From = X
mmcMPG.Command = "step"
mmcMPG.Frames = 1
mmcMPG.Refresh
End SubPrivate Sub Timer1_Timer()
Dim X As Long
'得到当前播放位置
X = mmcMPG.position
ProgressBar1.Value = X * 40
txtShowTime.Text = X * 40
lblMP3Now.Caption = Gettime(X * 40)
'显示歌曲当前时间
If ProgressBar1.Value = ProgressBar1.Max Then
cmdMP3StopPlay_Click
End If
End Sub
这种使用优化方面的问题,需要看全部代码,花时间,以便查找原因。
并且要把你遇到的问题的环境、使用的资料、参数等说清楚,以便重现问题。才可以查找。
如果可以,可以将源码发给我,我的QQ:906640不知你的Timer控件,设置的时间间隔是多久,这个会有一些影响。天狼工作室
http://www.j2soft.cn/