Как сделать звук будильника, используя C? - PullRequest
2 голосов
/ 18 января 2020

Я хотел создать C программу, которая могла бы работать как мой Pomodoro Timer. У меня есть часть таймера, и она здесь

#include<stdio.h>
#include<unistd.h>

int main(){
    int sec;
    printf("\n Enter the no of minutes you need to wait :");
    scanf("%d",&sec);
    sec *= 60;
    do {
        printf("\r%d ",sec);
        sec--;
        fflush(stdout);
        sleep(1);
    }while(sec>0);

    printf("\n Time Elapsed");
    return 0;
}

Я просто пробовал код, и он прекрасно работает, у вас может быть 25 и 5 альтернатив для одного цикла, но это будет позже. Я подумал, что было бы неплохо, если я смогу воспроизвести какой-либо звук или передать уведомление, но я не думаю, что знаю, как это сделать, и я прочесываю inte rnet, пока мы говорим в поисках ответа, но пока Я не могу найти подходящий ответ. Я обещаю обновить это, если вообще найду решение. Если есть какая-то конкретная библиотека, на которую я должен смотреть, пожалуйста, оставьте это в комментариях. Заранее спасибо!

Ответы [ 3 ]

1 голос
/ 19 января 2020

Windows Платформа: PlaySound

PlaySound("Filename.wav", NULL, SND_FILENAME); 
0 голосов
/ 19 января 2020

Linux Платформа: PulseAudio или SDL Audio или ALSA

Файлы PCM или WAV могут обрабатываться вышеуказанным API для Воспроизведение различных типов сигналов будильника.

Примечание. Если в некоторых случаях требуется воспроизвести файл .wav, необходимо отдельно обрабатывать заголовок Wav.

0 голосов
/ 18 января 2020

\a в символьной константе или строке обозначает звуковой звонок.
C Ссылка

Но, возможно, вам придется распечатать куча из них на самом деле слышат это.


Как указано в комментариях, ваш терминал / консоль на самом деле должен поддерживать что-то с помощью звонка. Я все еще использую xterm на X11, который предоставляет эту опцию:

Включить Visual Bell (visualbell)
Включить (или отключить) видимый звонок (т. Е. Мигать) вместо звукового звонка.
Это соответствует опции -vb и ресурсу visualBell.

...