【问题标题】:How do I make code wait for the AVI Movie to finish playing before hiding media player ? Visual Basic 6如何在隐藏媒体播放器之前让代码等待 AVI 电影完成播放?视觉基础 6
【发布时间】:2016-02-28 13:11:41
【问题描述】:

这是我无法开始工作的代码 sn-p。我想要做的是让 windows 媒体播放器播放 avi,当它完成播放时,我希望 windows 媒体播放器变成“不可见”,直到下一次它需要播放 AVI。

   If brodyfile = 1 Then 'check character in file and play correct video.

       WindowsMediaPlayer1.URL = (App.Path & "\brody1.avi") 'play video

下面这行不起作用。如何等待 windows 媒体播放器完成播放 avi 之前它变得不可见?

       While WindowsMediaPlayer1.playState = wmppsPlaying ' This line never works

       Sleep (500)

       Wend

       WindowsMediaPlayer1.uiMode = "invisible" ' This happens before AVI finishes playing.

   Endif

【问题讨论】:

    标签: vb6 windows-media-player


    【解决方案1】:

    不起作用的原因是视频开始播放需要很短的时间。当它到达你的 while 语句时,视频还没有开始播放,所以它的 PlayState 不会是 wmppsPlaying。

    您也不应该使用 Sleep,因为它会阻止 UI 的更新。最好使用定时器控件。

    这是我的建议。计时器每秒检查一次状态,但也不进行第一次检查,因此视频应该有时间开始。如果视频是从需要很长时间加载的源加载的,您可能必须创建一个计时器来检查视频是否开始播放,然后再创建一个计时器来检查它是否停止。

    Private Sub Command1_Click()
        Me.WindowsMediaPlayer1.URL = (App.Path & "\brody1.avi")
    
        Me.Timer1.Interval = 1000
        Me.Timer1.Enabled = True
    End Sub
    
    Private Sub Timer1_Timer()
        Dim videoIsPlaying As Boolean
    
        videoIsPlaying = Me.WindowsMediaPlayer1.PlayState = wmppsPlaying
    
        If Not videoIsPlaying Then
            Me.Timer1.Enabled = False
            'Hide it here
        End If
    

    结束子

    【讨论】:

      猜你喜欢
      • 2011-04-27
      • 1970-01-01
      • 2023-03-28
      • 1970-01-01
      • 1970-01-01
      • 2016-03-26
      • 1970-01-01
      • 2017-03-27
      相关资源
      最近更新 更多