高分求如何解决mciSendString播放音乐时同时有多个歌曲播放

imoyo 2010-07-06 05:49:58
调用API做了一个音乐播放器,加载一个mp3列表。MP3为网络地址。用mciSendString进行播放。
如果慢慢点击列表中每首歌播放没问题,可快速点击列表中多个歌曲,比如迅速多次点击下一首。就会听到多首歌曲同时播放的现象。这是啥原因,有什么解放方法啊。

我在调用 play 前已经调用 APIClass.mciSendString("close all", TemStr, TemStr.Length, 0);方法了。但不管用。
还有 stop ,close 等等都用了,就是不管用
我自己怀疑是mciSendString产生了多个实例。但没找到如何解决
...全文
766 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhuxuanlinzhux 2012-02-20
  • 打赏
  • 举报
回复
改一下
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);
zhuxuanlinzhux 2012-02-20
  • 打赏
  • 举报
回复
在使用mciSendString时,关键不是close、stop、pause命令,而是在从新播放一首新歌曲事从新使用open命令
例如 从新播放另一首歌
mciSendString(“stop OldMusicName”,“”,0,0);
然后从新open另一首歌
mciSendString(“open NewMusicName”,“”,0,0);
之后在使用Open命令
mciSendString(“open NewMusicName”,“”,0,0);
l1411928608 2010-12-18
  • 打赏
  • 举报
回复
你先得到当前播放的歌曲的项,这个会吗??然后用这个项来得到当前的歌曲的完整路径,然后再用mcinSendString(“close。。。。。”)就可以了
imoyo 2010-07-07
  • 打赏
  • 举报
回复
没人知道怎么解决吗
imoyo 2010-07-07
  • 打赏
  • 举报
回复
我关闭了,可是不管用。出现多个音乐同时播放时当前的操作只能管理1个音乐的播放,其他多个声音关不掉。应该是产生了多个播放的实例对象。
延迟操作也不行,不可能不让用户随便点击歌曲播放啊。
vip__888 2010-07-07
  • 打赏
  • 举报
回复
友情帮顶
平生我自如 2010-07-07
  • 打赏
  • 举报
回复
帮顶一下吧!不太清楚
wuyq11 2010-07-06
  • 打赏
  • 举报
回复
延迟操作,关闭其他播放的文件

110,538

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧