使用WndProc和mciSendString来确定音频文件是否到达末尾

时间:2018-09-02 12:19:30

标签: c#

我正在尝试创建一个简单的媒体播放器,现在我可以播放一首歌曲并加载多首歌曲以创建一个播放列表,问题是当一首歌曲结束时,程序将无法继续播放下一首歌。

    public void Play(int songNumber, Form f)
    {
            Load(Songs[songNumber]);
            string Command = "play MediaFile notify";
            mciSendString(Command, null, 0, f.Handle);
    }

    private void PlayBtn_Click(object sender, EventArgs e)
    {
        int length = AudioPlayer.PlaylistLength;
        for (int PlayLoopcnt = 0; PlayLoopcnt < length;)
        {
            Player.Play(PlayLoopcnt, this);
        }
    }

    protected override void WndProc(ref Message m)
    {
        if(m.Msg == MM_MCINOTIFY)
        {
            PlayLoopcnt++;
        }
        base.WndProc(ref m); 
   }

我有一个AudioPlayer类,它处理amedia播放器的所有方法,例如播放,停止等...

WndProc位于表单代码中,如果有人可以指出我做错了什么,甚至是正确的方法,我也会很高兴。

0 个答案:

没有答案