Событие Playstatechange Для Windowsmediaplayer

vadpetr

New Member
11.02.2015
1
0
#1
Добрый день! Прошу помочь.

Использую Media Player для просмотра видео. Хочу по окончании видео закрыть окно player’ а:
………………………………
Player = New WMPLib.WindowsMediaPlayer
…………………………………
Player.openPlayer(filePath)
Pr = Process.GetProcessesByName("wmplayer")(0)
………………………………….
Private Sub Player_PlayStateChange (NewState As Integer) Handles Player.PlayStateChange
If NewState = WMPLib.WMPPlayState.wmppsMediaEnded Then
Pr.Kill()
End If
End Sub
В этом варианте кода событие PlayStateChange «не отслеживается». В подпрограмму Player_PlayStateChange управление не передается

Второй вариант:
вместо Player.openPlayer(filePath) вставляю
Player.URL = filePath
Player.controls.play()
событие PlayStateChange обрабатывается, player закрывается, но при этом проигрывается только звуковая дорожка.

Третий вариант:
В первый вариант после Pr = Process.GetProcessesByName("wmplayer")(0) добавляю
Player.URL = filePath
Player.controls.play()
Т.е. запускаю и видео (со звуком) и отдельно звук. В этом случае видео со звуком «прокручивается» и окно закрывается.
Но если пользоваться элементами управления player’a (например «пауза»), то все «сбивается»
(звук продолжает идти и после того как он проигрывается – окно закрывается).

Т.е событие PlayStateChange в области видимости только для Player.controls.play() (для аудио).
Как его отследить для Player.openPlayer(filePath) (для видео)?