Как озвучить программу?
От: Аноним  
Дата: 13.11.09 13:47
Оценка: 3 (1)
как-то в наш век мультимедиа уже становится моветоном разрабатывать тихушные аппликухи для глухонемых ))
хочется иметь всякие там звуки предупреждения, нотификации и т.п. из текущей темы рабочего стола
Как это делается? подскажите пожалуйста
Re: Как озвучить программу?
От: Александр Кузнецов Россия  
Дата: 13.11.09 14:30
Оценка: 15 (4) +3 -1
Здравствуйте, Аноним, Вы писали:

А>как-то в наш век мультимедиа уже становится моветоном разрабатывать тихушные аппликухи для глухонемых ))

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

Немного не ожидаемый ответ, но все-таки:
Представьте, что помимо вас в комнате сидит еще несколько человек и у них периодически пищат программы по причине наступления чрезвычайно важных по мнению разработчиков программ (но не пользователей!!!) событий. Или, вы сидите и слушаете музыку, а параллельно программа о чем-то своем периодически сообщает .
Есть такой анек: "Водитель, помни, довольно часто не сигнализация пищит потому, что стекло выбили, а стекло выбили потому, что сигнализация пишит."
В общем, если есть желание позаниматься "музицированием" в проге, которая очевидно таким функционалом обладать не должна, стоит:
1. предварительно опробовать (в смысле, заставить с ней хотя бы недельку плотно поработать) такую прогу на знакомых, которые если и будут бить, то не больно ;
2. сделать музыкальные настройки отключаемыми (причем по умолчанию их включать не желательно).
"Пишите код так, как будто сопровождать его будет склонный к насилию психопат, который знает, где вы живете". (с) Макконнелл, "Совершенный код".
Re[2]: Как озвучить программу?
От: Аноним  
Дата: 13.11.09 14:36
Оценка:
Здравствуйте, Александр Кузнецов, Вы писали:

АК>Здравствуйте, Аноним, Вы писали:


А>>как-то в наш век мультимедиа уже становится моветоном разрабатывать тихушные аппликухи для глухонемых ))

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

АК>Немного не ожидаемый ответ, но все-таки:

АК>Представьте, что помимо вас в комнате сидит еще несколько человек и у них периодически пищат программы по причине наступления чрезвычайно важных по мнению разработчиков программ (но не пользователей!!!) событий. Или, вы сидите и слушаете музыку, а параллельно программа о чем-то своем периодически сообщает .
АК>Есть такой анек: "Водитель, помни, довольно часто не сигнализация пищит потому, что стекло выбили, а стекло выбили потому, что сигнализация пишит."
АК>В общем, если есть желание позаниматься "музицированием" в проге, которая очевидно таким функционалом обладать не должна, стоит:
АК>1. предварительно опробовать (в смысле, заставить с ней хотя бы недельку плотно поработать) такую прогу на знакомых, которые если и будут бить, то не больно ;
АК>2. сделать музыкальные настройки отключаемыми (причем по умолчанию их включать не желательно).

Я вполне с Вами соглашусь если этим баловацца черезмерно, но что вы возразите по поводу звуков в самой винде?
я хочу привлечь внимание при достаточно рискованных операциях и при длительных — процесс окончания
Re: Как озвучить программу?
От: vmpire Россия  
Дата: 13.11.09 14:55
Оценка: +3
Здравствуйте, Аноним, Вы писали:

А>как-то в наш век мультимедиа уже становится моветоном разрабатывать тихушные аппликухи для глухонемых ))

А>хочется иметь всякие там звуки предупреждения, нотификации и т.п. из текущей темы рабочего стола
А>Как это делается? подскажите пожалуйста
Не рассказывайте ему про DirectX Managed, функцию API PlaySound и интерфейс IUserNotification!
Надоели музыкальные шкатулки, которые брякают, динькают и хрюкают вместо того, чтобы делом заниматься.
Единственные программы, где должны быть звуки — это аудио- и виделплейеры.
Re: Как озвучить программу?
От: Мизантроп  
Дата: 13.11.09 14:56
Оценка:
Здравствуйте, Аноним, Вы писали:

А>как-то в наш век мультимедиа уже становится моветоном разрабатывать тихушные аппликухи для глухонемых ))

А>хочется иметь всякие там звуки предупреждения, нотификации и т.п. из текущей темы рабочего стола
А>Как это делается? подскажите пожалуйста

В принципе, системные звуки можно проиграть с помощью PlaySound из winmm.dll. Список алиасов хранится в HKEY_CURRENT_USER\AppEvents\EventLabels, каждый подключ — отдельный псевдоним.
"Нормальные герои всегда идут в обход!"
Re[2]: Как озвучить программу?
От: Мизантроп  
Дата: 13.11.09 14:59
Оценка:
Здравствуйте, vmpire, Вы писали:

V>Не рассказывайте ему про DirectX Managed, функцию API PlaySound и интерфейс IUserNotification!

V>Надоели музыкальные шкатулки, которые брякают, динькают и хрюкают вместо того, чтобы делом заниматься.
V>Единственные программы, где должны быть звуки — это аудио- и виделплейеры.

У меня ни одна программа, включая ОС, не брякает, не динькает и даже не хрюкает — у меня звук выключен
"Нормальные герои всегда идут в обход!"
Re[3]: Как озвучить программу?
От: vmpire Россия  
Дата: 13.11.09 15:47
Оценка: 1 (1) +1 :)
Здравствуйте, Мизантроп, Вы писали:

М>У меня ни одна программа, включая ОС, не брякает, не динькает и даже не хрюкает — у меня звук выключен

А у меня включён, когда я музыку слушаю. И тут оно КАК ДИНЬКНЕТ!
Re[2]: Как озвучить программу?
От: Аноним  
Дата: 13.11.09 17:25
Оценка:
Здравствуйте, Мизантроп, Вы писали:

М>Здравствуйте, Аноним, Вы писали:


А>>как-то в наш век мультимедиа уже становится моветоном разрабатывать тихушные аппликухи для глухонемых ))

А>>хочется иметь всякие там звуки предупреждения, нотификации и т.п. из текущей темы рабочего стола
А>>Как это делается? подскажите пожалуйста

М>В принципе, системные звуки можно проиграть с помощью PlaySound из winmm.dll. Список алиасов хранится в HKEY_CURRENT_USER\AppEvents\EventLabels, каждый подключ — отдельный псевдоним.


Спасибо за толковый ответ!
Re[2]: Как озвучить программу?
От: IDecember Россия  
Дата: 13.11.09 18:21
Оценка:
Здравствуйте, Мизантроп, Вы писали:

М>Здравствуйте, Аноним, Вы писали:


А>>как-то в наш век мультимедиа уже становится моветоном разрабатывать тихушные аппликухи для глухонемых ))

А>>хочется иметь всякие там звуки предупреждения, нотификации и т.п. из текущей темы рабочего стола
А>>Как это делается? подскажите пожалуйста

М>В принципе, системные звуки можно проиграть с помощью PlaySound из winmm.dll. Список алиасов хранится в HKEY_CURRENT_USER\AppEvents\EventLabels, каждый подключ — отдельный псевдоним.

SystemSounds
Re[3]: Как озвучить программу?
От: Аноним  
Дата: 13.11.09 18:53
Оценка:
Здравствуйте, IDecember, Вы писали:

ID>Здравствуйте, Мизантроп, Вы писали:


М>>Здравствуйте, Аноним, Вы писали:


А>>>как-то в наш век мультимедиа уже становится моветоном разрабатывать тихушные аппликухи для глухонемых ))

А>>>хочется иметь всякие там звуки предупреждения, нотификации и т.п. из текущей темы рабочего стола
А>>>Как это делается? подскажите пожалуйста

М>>В принципе, системные звуки можно проиграть с помощью PlaySound из winmm.dll. Список алиасов хранится в HKEY_CURRENT_USER\AppEvents\EventLabels, каждый подключ — отдельный псевдоним.

ID>SystemSounds

Стандартных маловато будет ))
Re: Как озвучить программу?
От: Воронков Василий Россия  
Дата: 13.11.09 19:15
Оценка: 4 (1)
Здравствуйте, Аноним, Вы писали:

А>как-то в наш век мультимедиа уже становится моветоном разрабатывать тихушные аппликухи для глухонемых ))

А>хочется иметь всякие там звуки предупреждения, нотификации и т.п. из текущей темы рабочего стола
А>Как это делается? подскажите пожалуйста

Для нотификации и прочего можно использовать Text2Speech. Нужные классы есть в 3.5, разобраться просто. Довольно свежо и оригинально + возможность легкой настройки пользователем (можно заставить программу говорить все, что угодно).
Re[3]: Как озвучить программу?
От: Александр Кузнецов Россия  
Дата: 13.11.09 20:47
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Я вполне с Вами соглашусь если этим баловацца черезмерно, но что вы возразите по поводу звуков в самой винде?

А>я хочу привлечь внимание при достаточно рискованных операциях и при длительных — процесс окончания

Пример 1: некоторые антивирусы считают важным пищать при обнаружении вируса. А у меня на старой работе не могли год извести вирусняк, заражающий флешки. Закономерный итог — вставляешь флешку, побывавшую в компе на старой работе в комп с нормальным антивирусом (все остальные, на которых флешка использовалась) и получаешь по ушам. Иногда достаточно громко. Нет, я понимаю, что вирус — это СОБЫТИЕ. Но я и так о нем знаю
Пример 2: DС++ (менеджер закачек для пиринговых сетей) считает очень важным оповещать об уходе с закачки каждого из сидов, при том, что сама закачка продолжается. А еще, кричит об окончании закачки каждого файла вне зависимости от того, качаю я 1 большой файл, или папку с 10000 килобайтных файлов.

Поэтому лично у меня звуковые оповещения в программах обычно отключены полностью. Если честно, то программу в которой реально постоянно нужно было бы звуковое оповещение, вспомнить затрудняюсь.
"Пишите код так, как будто сопровождать его будет склонный к насилию психопат, который знает, где вы живете". (с) Макконнелл, "Совершенный код".
Re[4]: Как озвучить программу?
От: Аноним  
Дата: 13.11.09 22:01
Оценка:
Здравствуйте, Александр Кузнецов, Вы писали:

АК>Здравствуйте, Аноним, Вы писали:


А>>Я вполне с Вами соглашусь если этим баловацца черезмерно, но что вы возразите по поводу звуков в самой винде?

А>>я хочу привлечь внимание при достаточно рискованных операциях и при длительных — процесс окончания

АК>Пример 1: некоторые антивирусы считают важным пищать при обнаружении вируса. А у меня на старой работе не могли год извести вирусняк, заражающий флешки. Закономерный итог — вставляешь флешку, побывавшую в компе на старой работе в комп с нормальным антивирусом (все остальные, на которых флешка использовалась) и получаешь по ушам. Иногда достаточно громко. Нет, я понимаю, что вирус — это СОБЫТИЕ. Но я и так о нем знаю

АК>Пример 2: DС++ (менеджер закачек для пиринговых сетей) считает очень важным оповещать об уходе с закачки каждого из сидов, при том, что сама закачка продолжается. А еще, кричит об окончании закачки каждого файла вне зависимости от того, качаю я 1 большой файл, или папку с 10000 килобайтных файлов.

АК>Поэтому лично у меня звуковые оповещения в программах обычно отключены полностью. Если честно, то программу в которой реально постоянно нужно было бы звуковое оповещение, вспомнить затрудняюсь.


Приличные люди используют звуки схемы рабочего стола и ежели уж юзеру надоедают какието звуки — он отключает их в настройках звуков схемы
Re[2]: Как озвучить программу?
От: Аноним  
Дата: 13.11.09 22:08
Оценка:
Здравствуйте, Мизантроп, Вы писали:

М>Здравствуйте, Аноним, Вы писали:


А>>как-то в наш век мультимедиа уже становится моветоном разрабатывать тихушные аппликухи для глухонемых ))

А>>хочется иметь всякие там звуки предупреждения, нотификации и т.п. из текущей темы рабочего стола
А>>Как это делается? подскажите пожалуйста

М>В принципе, системные звуки можно проиграть с помощью PlaySound из winmm.dll. Список алиасов хранится в HKEY_CURRENT_USER\AppEvents\EventLabels, каждый подключ — отдельный псевдоним.


Спасибо всем кто старался этого не допкустить!
Вот результат:

  public class WSounds
  {
    [DllImport("WinMM.dll")]
    public static extern bool PlaySound(string fname, int Mod, int flag);     // these are the SoundFlags we are using here, check mmsystem.h for more    
    //  flag values for SoundFlags argument on PlaySound
    public int SND_SYNC = 0x0000;      // play synchronously (default)
    public int SND_ASYNC = 0x0001;      // play asynchronously
    public int SND_NODEFAULT = 0x0002;      // silence (!default) if sound not found
    public int SND_MEMORY = 0x0004;      // pszSound points to a memory file
    public int SND_LOOP = 0x0008;      // loop the sound until next sndPlaySound
    public int SND_NOSTOP = 0x0010;      // don't stop any currently playing sound

    public int SND_NOWAIT = 0x00002000; // don't wait if the driver is busy
    public int SND_ALIAS = 0x00010000; // name is a Registry alias
    public int SND_ALIAS_ID = 0x00110000; // alias is a predefined ID
    public int SND_FILENAME = 0x00020000; // name is file name
    public int SND_RESOURCE = 0x00040004; // name is resource name or atom
    public int SND_PURGE = 0x0040;     // purge non-static events for task
    public int SND_APPLICATION = 0x0080;     // look for application specific association

    public void Play(string fname, int SoundFlags)
    {
      PlaySound(fname, 0, SoundFlags);
    }
    public void StopPlay()
    {
      PlaySound(null, 0, SND_PURGE);
    }
  }



Использование :


WSounds ws = new WSounds();
ws.Play("PrintComplete", ws.SND_ALIAS | ws.SND_ASYNC | ws.SND_NODEFAULT);
ws.Play(@"C:\Windows\media\Windows Print complete.wav", ws.SND_FILENAME | ws.SND_ASYNC | ws.SND_NODEFAULT);
Re[4]: Как озвучить программу?
От: mrjeka Россия  
Дата: 14.11.09 01:03
Оценка: +1 -1
Здравствуйте, Александр Кузнецов, Вы писали:

АК>Поэтому лично у меня звуковые оповещения в программах обычно отключены полностью. Если честно, то программу в которой реально постоянно нужно было бы звуковое оповещение, вспомнить затрудняюсь.


Вообще не понятно, зачем Вы отвечали на вопрос автора поста? Он не просил проголосовать, кто за и против озвучки проги, а просто просил привести примеры возможности воспроизведения звуков в программе.
Это тоже самое, что спросить сколько стоит хлеб, и вместо того, чтобы услышать цену, Вы услышите какой он вкусный и с чем его лучше есть.
Re[4]: Как озвучить программу?
От: mrjeka Россия  
Дата: 14.11.09 01:03
Оценка:
Здравствуйте, Александр Кузнецов, Вы писали:

АК>Поэтому лично у меня звуковые оповещения в программах обычно отключены полностью. Если честно, то программу в которой реально постоянно нужно было бы звуковое оповещение, вспомнить затрудняюсь.


Вообще не понятно, зачем Вы отвечали на вопрос автора поста? Он не просил проголосовать, кто за и против озвучки проги, а просто просил привести примеры возможности воспроизведения звуков в программе.
Это тоже самое, что спросите сколько стоит хлеб, и, вместо того, чтобы услышать цену, Вы услышите какой он вкусный и с чем его лучше есть.
Re[5]: Как озвучить программу?
От: Аноним  
Дата: 14.11.09 15:50
Оценка:
Здравствуйте, mrjeka, Вы писали:

M>Здравствуйте, Александр Кузнецов, Вы писали:


АК>>Поэтому лично у меня звуковые оповещения в программах обычно отключены полностью. Если честно, то программу в которой реально постоянно нужно было бы звуковое оповещение, вспомнить затрудняюсь.


M>Вообще не понятно, зачем Вы отвечали на вопрос автора поста? Он не просил проголосовать, кто за и против озвучки проги, а просто просил привести примеры возможности воспроизведения звуков в программе.

M>Это тоже самое, что спросить сколько стоит хлеб, и вместо того, чтобы услышать цену, Вы услышите какой он вкусный и с чем его лучше есть.

Тут просто наверно очень много одесситов ))
Я уже не в первый раз вижу кучу тредов в которых вместо того чтобы помочь автору — люди обсуждают свои болячки )))
Re[2]: Как озвучить программу?
От: Sinclair Россия https://github.com/evilguest/
Дата: 10.03.10 15:18
Оценка: 9 (1) +1 :))
Здравствуйте, Воронков Василий, Вы писали:
ВВ>Для нотификации и прочего можно использовать Text2Speech. Нужные классы есть в 3.5, разобраться просто. Довольно свежо и оригинально + возможность легкой настройки пользователем (можно заставить программу говорить все, что угодно).
У меня есть подозрение, что делать этого категорически не нужно.
Ненавязчивый аудио-фидбек помогает улучшить "ощущение" от интерфейса.
Представь себе, что твой автомобиль стал вдруг озвучивать включение поворотников не "тиканьем" (которое, если кто не знает, сейчас делается искусственно — реле перестали применять в незапамятные времена), а через TTS. А?
Вот то-то же.

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

Поэтому я бы рекомендовал придерживаться трёх основных стратегий:
1. Уважать пользователя: Как можно больше звуков брать из текущей звуковой схемы. Есть ли событие, которое заслуживает прямо совсем-совсем отдельного звука?
2. Уважать пользователя: Отключать звуки, если они отключены для системы в целом.
3. Уважать пользователя: сделать отключение звуков лёгким для пользователя (например, как в Скайпе, где есть mute all)
4. Уважать пользователя: поставить громкость звуков в своей программе не на максимум (в тех виндах, где микшер позволяет рулить громкостью на уровне приложения), а потише.
5. Ну и вообще, помнить о том, что существует более чем один сценарий работы:
— пользователь работает с текстом/кодом, в наушниках/изолированном офисе. Ему можно помогать заметить фоновые события, а также предоставлять аудио-фидбек на его работу с UI (озвучка drag-n-drop, переключения контролов, етк)
— пользователь работает с текстом/кодом на ноутбуке (без наушников) в open space. Ему можно сообщать о важных фоновых событиях, а вот всяких призвякиваний лучше поменьше (иначе он вообще отключит звук и вся фича пойдёт мимо кассы)
— пользователь смотрит кино или слушает новый альбом Металлики. К нему лучше не лезть со своими ding.wav.
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
про
Re[3]: Как озвучить программу?
От: Воронков Василий Россия  
Дата: 10.03.10 15:21
Оценка:
Здравствуйте, Sinclair, Вы писали:

ВВ>>Для нотификации и прочего можно использовать Text2Speech. Нужные классы есть в 3.5, разобраться просто. Довольно свежо и оригинально + возможность легкой настройки пользователем (можно заставить программу говорить все, что угодно).

S>У меня есть подозрение, что делать этого категорически не нужно.
S>Ненавязчивый аудио-фидбек помогает улучшить "ощущение" от интерфейса.
S>Представь себе, что твой автомобиль стал вдруг озвучивать включение поворотников не "тиканьем" (которое, если кто не знает, сейчас делается искусственно — реле перестали применять в незапамятные времена), а через TTS. А?
S>Вот то-то же.

Навигация вот разговаривает и всем это нравится. Представь, что у тебя навигация вместо приятного женского голоса начнет пищат с разной частотой, а по частоте пищания ты будешь определять правильно ты едешь или нет. Представил, понравилось?
Так что может не стоит проводить неуместные аналогии.

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

S>Поэтому я бы рекомендовал придерживаться трёх основных стратегий:
S>1. Уважать пользователя...

Уважать пользователя — значит дать ему возможность настроить приложение, как он хочет. И какие бы "звуковые сигналы" не издавала программа, это никак не исключает банальной возможности их отключить.
Re[3]: Как озвучить программу?
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 10.03.10 18:47
Оценка:
Здравствуйте, Sinclair, Вы писали:

S>Представь себе, что твой автомобиль стал вдруг озвучивать включение поворотников не "тиканьем" (которое, если кто не знает, сейчас делается искусственно — реле перестали применять в незапамятные времена), а через TTS. А?


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

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


Я детально не исследовал, но установка семерки заставила меня вспомнить, что винда умеет всяко булькать. Виста квакала пореже.
... << RSDN@Home 1.2.0 alpha 4 rev. 1464 on Windows 7 6.1.7600.0>>
AVK Blog
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.