Я пишу программу с использованием призмы Delphi. Цель состоит в том, чтобы иметь возможность запускать в 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;