我正在使用 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;