Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > VB6 > Проблема с паузой и событием.


Автор: korob2001 18.11.2004, 12:53
Вобщем решил написать, ради тренировки, плеер. Нарисовал графику, создал проект, подключил к проекту компонент Microsoft Windows Media Player. Все кнопки сделал графическими. Включаю .mp3 файл, он вроде бы нормально играет, но изредка появляется какое-то цоканье. smile Почему?

Когда играет музыка жму кнопку Pause ( графическую ). Вот так выглядит её процедура обработки события Click:
Код

Private Sub imgPause_Click( Index as Integer )
           mplPlayer.Pause
End Sub

Всё нормально, музыка останавливается, вот когда я жму кнопку Play, то музыка начинается сначала, а по идее должна была продолжыться, с того места, где была сделана остановка.
Такая процедура на событии Click, кнопки Play:
Код

Private Sub imgPlay_Click( Index as Integer )
           mplPlayer.Play
End Sub

Как отследить, в какой позиции была нажата кнопка Pause, что бы затем продолжить композицию с данной позиции?

На кнопки вешаю событие MouseMove для смены изображения, всё работает, изображение действительно меняется. Только вот я не понял, какое событие отслеживает, что курсор ушёл с мыши? Другими словами, нужен аналог onMouseOut из JavaScript.

Заранее спасибо. Когда допишу, выложу его тута, посмеёмся вместе. Это мой первый плеер. ;)

Автор: amt 24.11.2004, 13:44
Цитата
Всё нормально, музыка останавливается, вот когда я жму кнопку Play, то музыка начинается сначала, а по идее должна была продолжыться, с того места, где была сделана остановка.
Такая процедура на событии Click, кнопки Play:


Не совсем понятно в чем проблема. По твоему примеру создал форму, закинул туды Windows Media Player и две кнопки и написал код. У меня все нормально работает и воспроизведение производится с того места, в котором была нажата пауза.


Код

Public strFileName As String

Private Sub Form_Load()
Command1.Caption = "Play"
Command2.Caption = "Stop"
strFileName = "путь к файлу"
MediaPlayer1.FileName = strFileName
MediaPlayer1.Stop
MediaPlayer1.Visible = False
End Sub

Private Sub Command1_Click()’кнопка Play/Pause
If MediaPlayer1.PlayState = mpPlaying Then
MediaPlayer1.Pause
Command1.Caption = "Play"
Else
MediaPlayer1.Play
Command1.Caption = "Pause"
End If
End Sub

Private Sub Command2_Click()’кнопка Stop
If MediaPlayer1.PlayState = mpPlaying Or MediaPlayer1.PlayState = mpPaused Then
MediaPlayer1.Stop
MediaPlayer1.CurrentPosition = 0
End If
End Sub
Private Sub MediaPlayer1_PlayStateChange(ByVal OldState As Long, ByVal NewState As Long)
If MediaPlayer1.PlayState = mpStopped Then
Command2.Enabled = False
Else
Command2.Enabled = True
End If
End Sub

Автор: korob2001 24.11.2004, 21:17
С этим уже разобрался, но всё-равно спасибо.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)