【问题标题】:How to get music to play in Delphi 7?如何让音乐在 Delphi 7 中播放?
【发布时间】:2011-12-07 15:12:58
【问题描述】:

我需要在我的程序的 OnFormActivate 事件中的程序开始时让音乐在后台播放。我有我想使用的歌曲,但我不知道 Delphi 需要使用什么命令才能开始播放该歌曲。

谢谢你们的帮助:)

【问题讨论】:

  • How to play a wav-File in Delphi? 的可能重复项您实际上并不需要 MediaPlayerComponent,您也可以使用 MMSystem 单元,请参阅链接。
  • @Johan 这也适用于wmamp3
  • 我使用了 TMediaPlayer 并且它可以工作,但是在歌曲长度之后,它不会重复歌曲。如何让歌曲重复播放?
  • @NGLN,令人讨厌的是有时会,有时不会。在我的旧笔记本电脑 WinXP-xp3 上,它可以与 MP3 兼容,而在我的 pre-pre 笔记本电脑 Win XP sp1 的 VM 副本上,它不能。

标签: delphi delphi-7 background-music


【解决方案1】:

使用 TMediaPlayer 组件,它位于组件面板的 System 选项卡上。

procedure TForm1.FormActivate(Sender: TObject);
begin
  MediaPlayer1.FileName := '<fill in>.mp3';
  MediaPlayer1.Open;
  MediaPlayer1.Play;
end;

Visible 属性设置为 False。


编辑回应 OP 的评论:

要重复歌曲,您可以使用 TTimer 组件,该组件也位于系统选项卡上。延迟一秒重复歌曲:

procedure TForm1.FormActivate(Sender: TObject);
begin
  MediaPlayer1.FileName := '<fill in>.mp3';
  MediaPlayer1.Open;
  MediaPlayer1.TimeFormat := tfMilliseconds;
  Timer1.Interval := MediaPlayer1.Length + 1000;
  MediaPlayer1.Play;
  Timer1.Enabled := True;
end;

procedure TForm1.Timer1Timer(Sender: TObject);
begin
  MediaPlayer1.Play;
end;

将计时器的 Enabled 属性设置为 False。

【讨论】:

  • 欧洲的某些 Windows 版本(N 版)没有 MediaPlayer。所以你必须在安装脚本中将它列为要求。
  • 您无需在播放音频时运行计时器。在调用Play() 之前将TMediaPlayer.Notify 属性设置为true,然后使用OnNotify 事件来检测播放停止的时间。然后启动定时器1s,到时调用Play()
【解决方案2】:

你可以使用TMediaPlayerComponent
Here你可以找到如何使用它的教程。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-02-08
    • 1970-01-01
    相关资源
    最近更新 更多