怎么完成这种功能?

sdqhlyf 2004-05-12 03:33:35
我做了一个播放音乐的小程序,但是我想在一个listbox中选中了很多歌曲,想听完一首再听另一首,可是我选了好几首,结果总是只放一首不知道怎么回事?希望帮我看看:
procedure TForm1.Button2Click(Sender: TObject);
var
i: integer;
begin
for i:=0 to listbox1.items.count-1 do
begin

MediaPlayer1.filename := listbox1.items.Strings[i];
MediaPlayer1.notify:=true;
try
MediaPlayer1.open;
except
raise exception.Create('打开文件时出错');
end;
with MediaPlayer1 do
begin
if Notify then
play;
end;
application.ProcessMessages;//这句话该如何加,我觉着应该释放系统控制权
end;
end;
...全文
31 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
miky 2004-05-13
  • 打赏
  • 举报
回复
同意楼上,你一首没放完马上放第2首,电脑快,结果只能听到最后一首。
iamduo 2004-05-13
  • 打赏
  • 举报
回复
应该在OnNotify事件(播放结束)中修改MediaPlayer1.filename
按以上代码,总是放最后一首吧
sdqhlyf 2004-05-13
  • 打赏
  • 举报
回复
还是不能实现循环播放!:(
superTY 2004-05-13
  • 打赏
  • 举报
回复
我不会,帮你顶
mingjianzeng2003 2004-05-13
  • 打赏
  • 举报
回复
顶!
duhailee 2004-05-13
  • 打赏
  • 举报
回复
我不会,帮你顶
wintergoes 2004-05-13
  • 打赏
  • 举报
回复
在OnNotify事件(播放结束)中让media播放下一首,而不是用FOR语句来控制它循环播放
tellyes 2004-05-13
  • 打赏
  • 举报
回复
我觉得应该把listview里面选中的所有文件记录在数组里,用一个全局变量记录当前播放歌曲在数组里的指针,然后在mediaplayer1的onnotify事件里监控播放结束,如果结束将全局变量指针加1,继续播放下一首歌曲。
rockswj 2004-05-13
  • 打赏
  • 举报
回复
同意iamduo(狄奥)
记下现在播放的,在onnotify里播放完后播放下一个
pl5th2001 2004-05-13
  • 打赏
  • 举报
回复
是不是只放最后一首??如果你连续双击几首歌,放的也是最后一首,一样的道理
我觉得应该把放下一首歌的代码写在MediaPlayer1播放完成的那段代码中
yinweixian 2004-05-12
  • 打赏
  • 举报
回复
要先关闭正在使用的MediaPlayer,同一线程怎么可以运行两个程序呢??是吧!
GreenWaterBlueSky 2004-05-12
  • 打赏
  • 举报
回复
在MediaPlayer1.filename := listbox1.items.Strings[i];之前先关闭一下吧;
application.ProcessMessages;这句我觉得不需要

5,388

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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