Вывод звука через динамик, когда вы не вошли в систему - PullRequest
5 голосов
/ 17 августа 2011

У меня есть программа, написанная на Delphi XE, которая воспроизводит WAV-файл с помощью TMediaPlayer. Программа запускается в системном трее на компьютере с Windows 7. Программа ожидает события для запуска воспроизведения файла WAV. Если я вошел на сам компьютер, то wav играет нормально. Но если я заблокирую компьютерный терминал (или войду через удаленный рабочий стол), файл wav не будет воспроизводиться через динамик компьютера. Я знаю, что событие запускается, потому что весь другой код в обработчике событий работает просто отлично; просто вы не можете услышать файл WAV. Я жестко запрограммировал громкость на максимальный уровень, так что я знаю, что это не проблема громкости. Есть ли в Windows 7 что-то, что не позволяет звукам проходить через динамик, если в данный момент никто не подключен к компьютеру? Если такое ограничение существует, есть ли способ обойти это?

1 Ответ

3 голосов
/ 17 августа 2011

Как предлагает Брэд, используйте PlaySound() вместо TMediaPlayer.Работает нормально, когда машина заблокирована.Не уверен, что он работает через подключение к удаленному рабочему столу.

Чтобы подтвердить это, я создал новое приложение, поместил TTimer в форму, установил для свойства Interval значение 20000 и поместил этот код всобытие OnTimer:

procedure TForm13.Timer1Timer(Sender: TObject);
begin
  PlaySound('c:\windows\media\tada.wav', 0, SND_ASYNC or SND_FILENAME);
end;

Затем я запустил его, заблокировал консоль (с помощью Windows L ) и подождал 20 секунд.Звук воспроизводится успешно.

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