0

我正在使用 Delphi prism 编写程序。目标是能够在同一个项目的 Windows 和 linux(单声道)上运行。所以,在这一点上,我需要有一种方法来播放 windows 和 linux(mono) 的声音文件,而不必导入 winmm.dll 或 microsoft.visualbasic.dll。

因为我也需要这个在单声道上工作,所以我不想使用 visualbasic.dll。过去,它给了我各种各样的问题。

有没有办法在不使用这些 dll 文件的情况下播放声音文件?

更新

无论声音播放器是如何实例化和使用的,它在 windows 操作系统下总是可以正常工作,而在单声道下的 Linux 上它有时会播放,有时它根本不会播放。

第一个版本:

  var thesound := new SoundPlayer;

  if Environment.OSVersion.Platform = Environment.OSVersion.Platform.Unix then
    thesound.SoundLocation := '/sounds/Alarms.wav'
  else
    thesound.SoundLocation:='\sounds\Alarms.wav';

  thesound.Load;
  thesound.PlayLooping;

第二版

var sp := new SoundPlayer(new FileStream("/sounds/Alarms.wav", FileMode.Open, FileAccess.Read, FileShare.Read));
sp.PlayLooping;
4

1 回答 1

4

您可以使用System.Media.SoundPlayer. 这是由 Mono 实现的。

于 2011-09-30T19:58:56.777 回答