调用API做了一个音乐播放器,加载一个mp3列表。MP3为网络地址。用mciSendString进行播放。
如果慢慢点击列表中每首歌播放没问题,可快速点击列表中多个歌曲,比如迅速多次点击下一首。就会听到多首歌曲同时播放的现象。这是啥原因,有什么解放方法啊。我在调用 play 前已经调用  APIClass.mciSendString("close all", TemStr, TemStr.Length, 0);方法了。但不管用。
还有 stop ,close 等等都用了,就是不管用
我自己怀疑是mciSendString产生了多个实例。但没找到如何解决

解决方案 »

  1.   

    你先得到当前播放的歌曲的项,这个会吗??然后用这个项来得到当前的歌曲的完整路径,然后再用mcinSendString(“close。。”)就可以了
      

  2.   

    在使用mciSendString时,关键不是close、stop、pause命令,而是在从新播放一首新歌曲事从新使用open命令
    例如 从新播放另一首歌
    mciSendString(“stop OldMusicName”,“”,0,0);
    然后从新open另一首歌
    mciSendString(“open NewMusicName”,“”,0,0);
    之后在使用Open命令
    mciSendString(“open NewMusicName”,“”,0,0);
      

  3.   

    改一下
    mciSendString(“stop OldMusicName”,“”,0,0);
    然后从新open另一首歌
    mciSendString(“open NewMusicName”,“”,0,0);
    之后在使用Open命令
    mciSendString(“open NewMusicName”,“”,0,0);
    改为
    mciSendString(“stop OldMusicName”,“”,0,0);
    然后从新open另一首歌
    mciSendString(“open NewMusicName”,“”,0,0);
    之后在使用play命令
    mciSendString(“play NewMusicName”,“”,0,0);