我把要播的音乐放在listbox1 里。我想逐一播或是随机播,但我设置了一个时间点,如:14:00 到14:00 自动停止播放,要不就一直循还播
放列表的歌曲。搞了一下午,网上搜了要不看不懂,要不没有。
 for i:=0 to rzlistbox1.Items.Count do
  begin
  j:=random(rzlistbox1.Items.Count) ;
  MediaPlayer1.FileName:=rzlistbox1.Items.Strings[j] ;
  MediaPlayer1.Open;
  MediaPlayer1.Play ;
  end;这是写的,可只能播一首

解决方案 »

  1.   

    说一说思路,你看能不能理解.加一个Timer控件.播放第一首的时候,计算这首歌的播放时间,然后以这个时间Interval(注意是单位是毫秒)
    然后启动Timer.这样做的目的其实就是当你第一首歌播放完之后,Timer就被触发了.
    在Timer触发的代码里要做几样事:
    1.判断是否在禁播的时间范围内,是的话就不继续.
    2.从ListBox1里选随即选出下一首歌
    3.计算选择出来的歌播放时间,也是一样设置Interval
    4.播放歌曲
    5.启动Timer
      

  2.   

    至于停止播放也是可以通过另外一个Timer来控制.例如我想 14:00到15:00停播启动程序时我们应该能取到当前的时间,例如是12:30,
    那么我就把该Timer的Intervalz值设置为(14:00-12:30)相差的毫秒数.
    这样子,Timer就会在14:00的时候被触发,触发时也是一样做几样事:
    1.把停播标志设置为True(可以加个私有变量来识别).
    2.停止当前在播放的歌曲.
    3.停止上面提到的下次播放的Timer的Enabled属性.
    4.设置下次开始播放的Timer的触发时间.