W tym artykule postaram się przedstawić multimedia. Pominiemy jednak wspaniały komponent MediaPlayer, gdyż tym razem zajmiemy się bardziej nie VCL-owym podejściem do tego zagadnienia. Napoczątku zapoznamy się z formatem MIDI.

MIDI

MIDI, czyli w skrócie Musical Instrument Digital Interface, jest protokołem i zbiorem instrukcji do przechowywania i transmitowania informacji o muzyce. Urządzenia MIDI interpretują te informacje, żeby odegrać muzykę. Delphi udostępnia wiele funkcji MIDI do odgrywania i nagrywania muzyki, my na razie zapoznamy się z podstawowymi. Pierwsze dwie funkcje, najbardziej fundamentalne, to funkcje midiInGetNumDevs i midiOutGetNumDevs. Informują one odpowiednio o ilości urządzeń wejściowych i wyjściowych w komputerze. Działają one tak:

Przydałoby się również pobrać informacje o możliwościach każdego z nich. Służy do tego funkcje midiInGetDevCaps i midiOutGetDevCaps. Poniższy kod sprawdza ilość urządzeń w systemie i wyświetla ich krótki opis:

Gdy już wiemy co i jak, możemy przejść do sedna sprawy, czyli odgrywania plików MIDI. Poniższa procedura play odgrywa plik podany jako filename. Może teraz krótkie omówienie co po kolei. Najpierw deklarujemy wykorzystywane zmienne: wDeviceID to identyfikator otworzonego urządzenia, kolejne dwie zmienne to struktury potrzebne do otworzenia urządzenia i odegrania muzyki. Kolejna sprawa do odpowiednie wypełnienie struktury MCI_OPEN_PARMS: pole lpstrDeviceType to typ urządzenia a lpstrElementName to nasz plik. Wywołujemy funkcję mciSendCommand z odpowiednimi parametrami i mamy już urządzenie otwarte, a w polu wDeviceID identyfikator urządzenia. Nie zostało już nic, tylko wywołać funkcję mciSendCommand i cieszyć się wspaniałą muzyką 🙂

JOYSTICK

Teraz zabawimy się JOYSTICKEM. Podobnie jak przy urządzeniach MIDI, do pobrania liczby urządzeń użyjemy funkcji joyGetNumDevs, a do pobrania informacji o każdym z nich funkcji joyGetDevCaps.

Do pobrania informacji o aktualnej pozycji joysticka służy funkcja joyGetPos.

Teraz pola wXpos, wYpos, wZpos będą zawierały informacje o położeniu joysticka, a pole wButtons o stanie przycisków. Ostatnie pole, może przyjmować jedną lub więcej wartości:
JOY_BUTTON1 – jeżeli przycisk pierwszy jest wciśnięty
JOY_BUTTON2 – jeżeli przycisk drugi jest wciśnięty
JOY_BUTTON3 – jeżeli przycisk trzeci jest wciśnięty
JOY_BUTTON4 – jeżeli przycisk czwarty jest wciśnięty

WAVE 

No końcu zajmiemy się formatem WAVE. Do odgrywania plików wav służą następujące funkcje:

Jest jeszcze jeden sposób na odegraniu pliku wav, a mianowicie użycie funkcji mciSendString:

Parametry od[ms] i do[ms] służą do ustalenia od której do której milisekundy będzie odgrywany plik. A teraz nie lada gratka dla tych co doczytali do końca, gdyż nauczymy się nagrywać pliki wav. Napiszemy procedurę, która zapisze dźwięk o określonej długości do zadanego pliku wav.

Jest jeszcze bardzo, bardzo, bardzo wiele różnych funkcji, struktur, typów i tak dalej, ja tylko przytoczyłem niektóre z nich, o reszcie można poczytać na stronce Microsoftu i w Platform SDK.

Autor: krajew4

Załączniki

  • zip multi
    Rozmiar pliku: 2 KB