播放声音文件而不导入winmm.dll或microsoft.visualbasic.dll

时间:2011-09-30 19:31:53

标签: .net linux delphi wav delphi-prism

我正在使用Delphi prism编写程序。目标是能够在同一个项目的Windows和Linux(单声道)上运行。因此,在这一点上,我需要有一种方法来播放Windows和Linux(单声道)的声音文件,而无需导入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;

1 个答案:

答案 0 :(得分:4)

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

相关问题