Как бибикнуть спикером в MASM32?

Тема в разделе "WASM.AUDIO", создана пользователем CyberDoom, 31 июл 2005.

  1. CyberDoom

    CyberDoom New Member

    Публикаций:
    0
    Регистрация:
    31 июл 2005
    Сообщения:
    11
    Кто нибуть знает как это зделать?

    Какие API вызывать и т.д.

    Нужно чтобы спикер пищал при нажатии заданой клавиши,

    облазил наверно весь интернет не нашел откуда содрать код

    если у кого какой пример есть дайте пожалуста.
     
  2. Loger

    Loger New Member

    Публикаций:
    0
    Регистрация:
    28 авг 2003
    Сообщения:
    71
    Адрес:
    Minsk
    MessageBeep(...)
     
  3. alpet

    alpet Александр

    Публикаций:
    0
    Регистрация:
    21 сен 2004
    Сообщения:
    1.221
    Адрес:
    Russia
    Еще лучше Beep - позволяет задать частоту и длительность звука (NT Only).


    Код (Text):
    1.  
    2. The Beep function generates simple tones on the speaker.
    3. The function is synchronous; it does not return control to
    4. its caller until the sound finishes.
    5.  
    6. BOOL Beep(
    7.   DWORD dwFreq,
    8.   DWORD dwDuration
    9. );
    10.  
    11. Parameters
    12. dwFreq
    13. [in] Frequency of the sound, in hertz.
    14. This parameter must be in the range 37 through 32,767 (0x25 through 0x7FFF).
    15.  
    16. Windows Me/98/95:  The Beep function ignores this parameter
    17.  
    18. dwDuration
    19. [in] Duration of the sound, in milliseconds.
    20.  
    21. Windows Me/98/95:  The Beep function ignores this parameter.
     
  4. IceStudent

    IceStudent Active Member

    Публикаций:
    0
    Регистрация:
    2 окт 2003
    Сообщения:
    4.300
    Адрес:
    Ukraine
    читай описания MessageBeep, Beep.
     
  5. Thread

    Thread New Member

    Публикаций:
    0
    Регистрация:
    12 июл 2005
    Сообщения:
    26
    Адрес:
    Ukraine
    Код (Text):
    1. Еще лучше Beep - позволяет задать частоту и длительность звука




    Я так понимаю, речь идет о втроенном динамике...

    А как на счет внешних..? )

    Можно ли там проворачивать те же приколы с частотой и длительностью..?
     
  6. Quantum

    Quantum Паладин дзена

    Публикаций:
    0
    Регистрация:
    6 янв 2003
    Сообщения:
    3.143
    Адрес:
    Ukraine
    Thread

    Внешние динамики (если они есть) подключены к звуковой плате. Этот факт должен наводить на определённые мысли...



    Подсказка: виндовый MCI, который доступен через WINMM.DLL. Есть ещё Direct Sound...
     
  7. CyberDoom

    CyberDoom New Member

    Публикаций:
    0
    Регистрация:
    31 июл 2005
    Сообщения:
    11
    Спасибо что откликнулись я нашел исходник на masm32 (как мне и надо было) но кажись в ХР не работает или его плохо слышно

    invoke MessageBeep,0FFFFFFFFh

    в дос программах звук был мощней пример:



    org 256

    mov ah, 9

    mov dx, text

    int 21h

    int 20h

    label text

    db 'Beep',7,'$'
     
  8. IceStudent

    IceStudent Active Member

    Публикаций:
    0
    Регистрация:
    2 окт 2003
    Сообщения:
    4.300
    Адрес:
    Ukraine
    MessageBeep работает, да, относительно тихо.
     
  9. CyberDoom

    CyberDoom New Member

    Публикаций:
    0
    Регистрация:
    31 июл 2005
    Сообщения:
    11
    А конкретнную процедуру которая работала бы в 98 и ХР может кто нибуть дать? Хоть у когото это получалось или все знают только по наслышке?
     
  10. Quantum

    Quantum Паладин дзена

    Публикаций:
    0
    Регистрация:
    6 янв 2003
    Сообщения:
    3.143
    Адрес:
    Ukraine
    CyberDoom

    MessageBeep работает на всех виндах за исключением тех редких случаев, когда динамик физически отсутствует. Сильно тихо? Ну, можно заставить бибикнуть консоль (см. пример), хотя не факт, что она запищит громче, чем стандартный MessageBeep.
    Код (Text):
    1. WriteConsole(hStdOut,"\x7",1,&aux,0);
     
  11. Jaman

    Jaman New Member

    Публикаций:
    0
    Регистрация:
    11 дек 2004
    Сообщения:
    15
    А как бибикнуть в DirectSound?

    например, сгенерив a*sin(b*t), t-время.

    собственно, как это потом занести в буфер?
     
  12. CyberDoom

    CyberDoom New Member

    Публикаций:
    0
    Регистрация:
    31 июл 2005
    Сообщения:
    11
    Вот рабочая прцедура для винХР(главно правельно всунуть)

    push 100h

    push 250h

    call Beep

    (greet ALx)

    но в вин98 не пашет