Что нового

Beep через спикер на МВ

vovsla

Осваивающий
Сообщения
607
Репутация
36
Появилась необходимость воспроизводить звук именно через спикер МВ.
Прочитал, что функцию Веер убрали из виндовых библиотек https://www.autoitscript.com/forum/topic/97251-beep-is-not-working/
Информация на официальном сайте https://msdn.microsoft.com/en-us/library/ms679277(VS.85).aspx
Подскажите, пожалуйста, как можно воспроизводить звук через спикер МВ?
 
Автор
V

vovsla

Осваивающий
Сообщения
607
Репутация
36
Я уже попробовал, функция Веер в WinXP выводит звук на спикер, а в Win10 только на колонки. Или нужно попробовать что-то еще?
MB это Mother Board
 

Garrett

Модератор
Локальный модератор
Сообщения
3,999
Репутация
967
Vovsla [?]
Вы же читали?! :shok:
MSDN сказал(а):
Since then, sound cards have become standard equipment on almost all PC computers. As sound cards became more common, manufacturers began to remove the old timer chip from computers. The chips were also excluded from the design of server computers. The result is that Beep did not work on all computers without the chip. This was okay because most developers had moved on to calling the MessageBeep function that uses whatever is the default sound device instead of the 8254 chip.

Подскажите, пожалуйста, как можно воспроизводить звук через спикер МВ?
Код:
#include <WinAPI.au3>
_WinAPI_MessageBeep()

MSDN сказал(а):
If it cannot play the system default sound, the function produces a standard beep sound through the computer speaker.



Добавлено:
Сообщение автоматически объединено:

Если у вас есть computer speaker на материнской плате, то можно попытаться включить его.
Панель управления ->Вид->Показать скрытые устройства

Открыть вкладку:
Драйвера несамонастраиваемых устройств -> Beep-> (ПКМ)Свойства->Драйвер->Запустить
Драйвера несамонастраиваемых устройств -> Beep-> (ПКМ)Свойства->Драйвер->Автозагрузка/Система
 
Автор
V

vovsla

Осваивающий
Сообщения
607
Репутация
36
У меня нет несамонастраиваемых устройств, в системных устройствах есть встроенный динамик и он включен
Пробовал воспроизводить командами.
Код:
#include <WinAPI.au3>

MsgBox(0,'Beep','WinAPI')
_WinAPI_MessageBeep()

MsgBox(0,'Beep','dll')
DllCall("kernel32.dll", "int", "Beep", "dword", 500, "dword", 1000)

MsgBox(0,'Beep','beep func')
For $Fr=300 To 1000
	Beep($Fr, 1000)
Next
MsgBox(0,'Beep','End')


Пробовал отключать встроенную звуковую карту в диспетчере устройств, не помогло.
 

Prog

Продвинутый
Сообщения
537
Репутация
65
Garrett [?]
Панель управления ->Вид->Показать скрытые устройства
Путь немного длиннее
Панель управления -> Диспетчер устройств ->Вид->Показать скрытые устройства

Только функция Beep от этого работать не начинает - звука нет
 

Garrett

Модератор
Локальный модератор
Сообщения
3,999
Репутация
967
Prog [?]
Только функция Beep от этого работать не начинает - звука нет
IMHO могут быть две причины:
1. Отсутствие чипа (8254) на материнской плате для спикера (нет физически).
2. В Windows 10 функция Beep отсутствует или вместо неё заглушка.
 

Prog

Продвинутый
Сообщения
537
Репутация
65
При старте компа BIOS "пищит" спикером. В WinXP все работает.
Звука нет в Win7. Похоже что действительно вместо функции заглушка.
 

inververs

AutoIT Гуру
Сообщения
2,135
Репутация
465
Попробуйте ехе запустить в режиме совместимости с XP, будет ли beep? Я не могу проверить т.к нету спикера
 

Prog

Продвинутый
Сообщения
537
Репутация
65
Совместимость с XP не помогает. Видимо вместо функции заглушка. Вдобавок майкрософт подложила свинью в виде обязательной подписи драйверов, иначе можно было свой написать и сделать аналог функции Beep.
 
Автор
V

vovsla

Осваивающий
Сообщения
607
Репутация
36
У меня в ХР звук из спикера есть. Нет звука в Win7 и в Win10. При запуске в режиме совместимости тоже нет звука. Хотя, при запросе "sc query beep" система сообщает, что служба работает
Кстати, в Win10 уже нет Non-PnP устройств в диспетчере задач. В Win7 Non-PnP устройства есть и beep там есть, и он включен.
 

Garrett

Модератор
Локальный модератор
Сообщения
3,999
Репутация
967
Vovsla [?]
в Win10 уже нет не пнп

Предупреждение За нарушение общих правил (пункт В.8):
Так как эта конференция называется "Русское сообщество AutoIt", язык общения на ней - Русский. Названия фирм или программных продуктов, аббревиатуры и т.д. должны быть написаны так, как они пишутся в оригинале, например не следует писать УСБ вместо USB. На форуме крайне не рекомендуется намеренно искажать русский язык и использовать "сетевой жаргон" на подобии "Аффтар выпей йадау!".


С уважением, ваш Глобальный модератор.
 
Верх