Форум программистов, компьютерный форум, киберфорум
C# .NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.64/11: Рейтинг темы: голосов - 11, средняя оценка - 4.64
0 / 0 / 1
Регистрация: 10.09.2012
Сообщений: 9
.NET 4.x

Воспроизведение звука в службе Windows

11.09.2012, 14:11. Показов 2325. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте,
передо мной стоит задача воспроизведения звуковой сигнализации по условию. Необходимо чтобы программа поднималась автоматически при перезагрузке и работала в фоне, без участия пользователя. Решено было написать службу на C#, нашел несколько способов реализации оповещения:

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
...
using System.Speech.Synthesis; //for first
using Microsoft.VisualBasic.Devices; //for second
using System.Media; //for third
 
namespace IcoAlarmSound
{
    public partial class IcoAlarmSound : ServiceBase
    {
        StreamWriter log;
        String path = "C:\\Log.txt";
 
        SpeechSynthesizer speech = new SpeechSynthesizer(); //for first
        Microsoft.VisualBasic.Devices.Audio audio = new Audio(); //for second
        SoundPlayer player = new SoundPlayer(); //for third
 
        ...
 
        protected override void OnStart(string[] args)
        {
            if (File.Exists(path))
            {
                File.Delete(path);
            }
            log = File.CreateText(path);
            log.WriteLine("Service Started.");
 
            //First try
            speech.Speak("Service started!");
 
            //Second try
            audio.Play("C:\\ServiceStarted.wav");
 
            //Third try
            player.SoundLocation = "C:\\ServiceStarted.wav";
            player.Load();
            if (player.IsLoadCompleted)
            {
                log.WriteLine("StartSound load completed");
            }
            player.Play();
 
            //At least just Beep
            System.Media.SystemSounds.Beep.Play();
        }
 
        protected override void OnStop()
        {
            log.WriteLine("Service Stoped.");
            log.Close();
        }
    }
}
Признаки жизни подает только System.Speech.Synthesis.Speak, остальные результата не дают при запуске службы, хотя в приложении Windows Forms прекрасно работает каждый из методов. Запуск службы "Вручную", вход в систему "С локальной учетной записью", запуск от имени администратора тоже не помог. Синтез речи не подходит, так как нужна русская речь.
Обьясните пожалуйста в чем проблема. Еще интересует вопрос, слишком ли геморойно заставить систему читать русский текст?
Спасибо.

Содержимое файла Log.txt:
Service Started.
StartSound load completed
Service Stoped.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
11.09.2012, 14:11
Ответы с готовыми решениями:

Воспроизведение звука
Кратко что имеется: - Имеется буфер с данными которые надо воспроизвести - Сохранять буфер в файл не надо - в буфере содержится...

Запись и воспроизведение звука
всем привет! хочу добавить в программу запись и воспроизведение звука, что то типа диктофона, никто не может поделиться исходником или...

Захват звука с микрофона и воспроизведение
Здравствуйте! Подскажите чем можно брать звук с микрофона, чтоб можно было его передавать по сети и воспроизводить с другой стороны?

1
 Аватар для raxper
10237 / 6615 / 498
Регистрация: 28.12.2010
Сообщений: 21,154
Записей в блоге: 1
11.09.2012, 16:17
...можно вынести функции синтеза (или воспроизведения речевых фрагментов) в отдельную программу (или DLL-ку) и управлять (запускать) ею из сервиса, так и сделал когда-то в (сервисе озвучивания буфера обмена).

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

Еще интересует вопрос, слишком ли геморойно заставить систему читать русский текст?
негеморройно. Кроме MS SpeechAPI при анлим-тырнете можно воспользоваться и GoogleSpeechAPI для озвучки, и озвучивайте хоть на китайском.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
11.09.2012, 16:17
Помогаю со студенческими работами здесь

Воспроизведение звука в PCM формате
Здравствуйте, помогите, пожалуйста с такой задачей: есть массив значений, представляющий собой звук в формате PCM. Как воспроизвести этот...

Как повесить на кнопку воспроизведение звука?
как сделать звук многопоточным?

Передача данных от приложения службе Windows
Уважаемые знатоки, подскажите пожалуйста, как мне правильнее или вообще хоть как-нибудь передать данные моей службе с моей приложеньки? ...

Определение нажатой клавиши в службе Windows
Всем привет. Пишу службу для винды. Мне нужно определить нажата ли клавиша и заносить её текущее значение(Не самого наименования клавиши, а...

Отслеживание входа/выхода пользователя в службе Windows
имеем сервис на C#, он при включении компа пишет строку в базу,что такойто юзер зашёл. по идее при выключении компа (при остановке службы)...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru