给出一个时间范围然后让WindowsMediaPlayer控件播放这个时间范围里面的音频。怎样实现呢?

解决方案 »

  1.   

    好像不能吧,你要做复读机效果,要在positonchange事件里自己判断是不是要回放或暂停吧
      

  2.   

    Option ExplicitPrivate Sub Command1_Click()
        '从1秒开始'
        WindowsMediaPlayer1.Controls.currentPosition = 1
        WindowsMediaPlayer1.Controls.play
        Timer1.Enabled = True
    End SubPrivate Sub Form_Load()
        Timer1.Enabled = False
        Timer1.Interval = 100
        WindowsMediaPlayer1.URL = "C:\WINDOWS\Media\Windows XP 启动.wav"
        WindowsMediaPlayer1.Controls.stop
    End SubPrivate Sub Timer1_Timer()
        '到3秒结束'
        If WindowsMediaPlayer1.Controls.currentPosition >= 3 Then
            WindowsMediaPlayer1.Controls.pause
            Timer1.Enabled = False
        End If
    End Sub
      

  3.   

    个人感觉还是用mciSendString方便点:
    Res = mciSendString("play " & App.Path & "\1.mp3 from X to Y", 0, 0, 0)
    播放X至Y处音频(毫秒)。
      

  4.   

    用mciSendString的话,一般是怎么针对WindowsMediaPlayer控件进行控制的呢
      

  5.   

    你如果是要用来播放一个wav里面许多段的语音的话 你用WindowsMediaPlayer的话,思路得改改了改用 McisendString 或sndPlaySound 来播放吧Option Explicit
    Dim CurPos&, Startpos&, EndPos&
    Private Sub Command1_Click()
       Startpos = 100: EndPos = 130
       If Startpos < 0 Then Startpos = 0
       WindowsMediaPlayer1.URL = "c:\sfair.mp3"
       WindowsMediaPlayer1.Controls.play
       Timer1.Enabled = True
       WindowsMediaPlayer1.Controls.currentPosition = Startpos
    End SubPrivate Sub Timer1_Timer()
       Me.Caption = WindowsMediaPlayer1.Controls.currentPosition
       If WindowsMediaPlayer1.Controls.currentPosition >= EndPos Or WindowsMediaPlayer1.Controls.currentPosition >= WindowsMediaPlayer1.currentMedia.duration Then WindowsMediaPlayer1.Controls.stop
    End Sub
      

  6.   

    看来只能用timer控件了阿。。
      

  7.   

    用mciSendString的话,一般是怎么针对WindowsMediaPlayer控件进行控制的呢