vx7.pl - hacking / coding / vx | Poland |

 Odgrywanie melodii na głośniczku systemowym

Napisane  10 października 2018 godz. 01:16 przez  Dawid_vx7

1. Funkcja Beep z WinAPI

W interfejsie programowania aplikacji dla Windows® nazywanym w skrócie WinAPI można znaleźć funkcję Beep. Pozwala ona na odegranie dźwięku na głośniczku systemowym. Odgrywany dźwięk jest prosty (takie Beep :) ), ale można ustawić mu częstotliwość (pierwszy parametr) oraz czas trwania w milisekundach (drugi parametr). Prototyp funkcji prezentuje się następująco:

bool WINAPI Beep(
_In_ DWORD dwFreq,
_In_ DWORD dwDuration
);


2. Trochę kodu

Poniżej przedstawiono kod, który odgrywa pewną znaną pieśń. Jeśli ją rozpoznajesz napisz komentarz :)
Kod jest w Visual C++. Jeśli posiadasz środowisko programistyczne Visual Studio to bez problemu możesz go skompilować i uruchomić.

#include <iostream>
#include <Windows.h>
#include <vector>
 
class N
{
public:
    int frequency;
    int duration;
 
    N(int a, int b)
    {
       frequency = a;
       duration = b;
    }
};
 
int main(int argc,char* argv[])
{
    std::vector<N> melody(
    {
        N(1044, 237), N(1044, 475), N(1044, 237), N(1044, 475), N(833, 475), N(934, 475),
        N(934, 950), N(934, 475), N(934, 475), N(934, 237), N(1044, 475), N(1175, 237),
        N(1044, 950), N(1044, 237), N(1044, 475),N(1044, 237), N(1044, 475), N(833, 475),
        N(934, 475), N(934, 950), N(833, 475), N(833, 237), N(833, 237), N(783, 475),
        N(783, 475), N(698, 950), N(1044, 950),N(833, 475), N(934, 475), N(1044, 950),
        N(1175, 237), N(1044, 475), N(934, 950), N(934, 950), N(783, 475), N(833, 475),
        N(934, 950), N(1044, 475), N(833, 237), N(783, 475), N(698, 950)
    });
 
    setlocale(LC_ALL, "");
 
    for (auto const&x: melody)
    {
       std::cout << " Beep(" << x.frequency << "," << x.duration << ");" << std::endl;
       Beep(x.frequency, x.duration);
    }
 
    std::cout << " Dziękuję." << std::endl;
 
#if _DEBUG
    system("pause>nul");
#endif
 
    return EXIT_SUCCESS;
}


3. Posłuchaj melodii

Wideo jest dostępne poniżej (włącz dźwięk!):

Gdyby powyższy film nie działał to tutaj jest kopia wideo.

Tagi: 


Wszystkie treści, kody źródłowe i programy umieszczone na portalu vx7.pl są chronione prawem autorskim. Surowo zabronione jest kopiowanie i rozpowszechnianie zawartości tej witryny bez zgody autora. Wszelkie materiały opublikowane na portalu vx7.pl służą jedynie celom edukacyjnym. Autorzy portalu vx7.pl i materiałów umieszczanych na nim nie biorą odpowiedzialności za niewłaściwe wykorzystanie udostępnionych zasobów. Nie ponoszą również żadnej odpowiedzialności za ewentualne szkody wynikłe z wykorzystania zasobów zawartych w witrynie. Osoby zarządzające portalem vx7.pl zastrzegają sobie prawo do usunięcia wpisów opublikowanych przez użytkowników bez podania przyczyny. Wszelkie znaki towarowe i nazwy zastrzeżone zostały użyte jedynie w celach informacyjnych i należą wyłącznie do ich prawnych właścicieli. Korzystając z zasobów portalu vx7.pl oświadczasz, że akceptujesz powyższe warunki.