Воспроизвести звуковой файл без импорта winmm.dll или microsoft.visualbasic.dll - PullRequest
0 голосов
/ 30 сентября 2011

Я пишу программу, использующую призму Delphi. Цель состоит в том, чтобы иметь возможность работать на Windows и Linux (моно) из одного проекта. Итак, на данный момент мне нужно иметь способ воспроизведения звукового файла для Windows и Linux (моно) без необходимости импортировать winmm.dll или microsoft.visualbasic.dll.

Так как мне нужно это для работы на моно, я не хочу использовать visualbasic.dll. В прошлом это давало мне всевозможные проблемы.

Существуют ли способы воспроизведения звукового файла без использования этих DLL-файлов?

UPDATE

Независимо от того, как создается и используется звуковой плеер, он всегда отлично работает в ОС 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 Ответ

4 голосов
/ 30 сентября 2011

Вы можете использовать System.Media.SoundPlayer. Это реализовано в Mono.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...