Вниз
Скачать: CL | DM;

Компонент для проигрывания MIDI   Найти похожие ветки 

← →
Е.М. Саша   (2002-10-18 22:50) [0]

Где можно скачать хорошую компоненту для проигрывания MIDI файлов, а то у стандартного MediaPlayer есть такой глюк: когда выбираешь для проигрывания midi, то комп начинает сильно тормозить и только через секунд 10 начинает проигрывать.
Вообщем не подскажете где скачать MIDI компонент??? Пжалуста...


← →
Rouse_ ©   (2002-10-18 22:56) [1]

Вот так вот можно проиграть миди

unit sound;

interface

procedure initSound;
procedure deInitSound;

implementation

uses Windows, MMsystem, Classes, SysUtils;

var wDeviceID : word;

procedure initSound;
var dwReturn : DWord;
mciOpenParms : MCI_OPEN_PARMS;
mciPlayParms : MCI_PLAY_PARMS;
mciStatusParms : MCI_STATUS_PARMS;
mciSeqSetParms : MCI_SEQ_SET_PARMS;

ResourceStream : TResourceStream;
begin
try
ResourceStream :=TResourceStream.Create(hInstance, "music", "MIDI");
ResourceStream.SaveToFile("music.mid");
finally
ResourceStream.Free;
end;

// Open the device by specifying the device and filename.
// MCI will attempt to choose the MIDI mapper as the output port.
mciOpenParms.lpstrDeviceType := "sequencer";
mciOpenParms.lpstrElementName := "music.mid";
dwReturn := mciSendCommand(0, MCI_OPEN, MCI_OPEN_TYPE OR MCI_OPEN_ELEMENT, Longint(@mciOpenParms));
if dwReturn <> 0 then
exit;

// The device opened successfully; get the device ID.
wDeviceID := mciOpenParms.wDeviceID;

// Check if the output port is the MIDI mapper.
mciStatusParms.dwItem := MCI_SEQ_STATUS_PORT;
dwReturn := mciSendCommand(wDeviceID, MCI_STATUS, MCI_STATUS_ITEM, Longint(@mciStatusParms));
if dwReturn <> 0 then
begin
mciSendCommand(wDeviceID, MCI_CLOSE, 0, 0);
exit;
end;

// The output port is not the MIDI mapper.
// Ask if the user wants to continue.
if LOWORD(mciStatusParms.dwReturn) <> Word(MIDI_MAPPER) then
begin
mciSendCommand(wDeviceID, MCI_CLOSE, 0, 0);
exit;
end;

// Begin playback. The window procedure function for the parent
// window will be notified with an MM_MCINOTIFY message when
// playback is complete. At this time, the window procedure closes
// the device.
dwReturn := mciSendCommand(wDeviceID, MCI_PLAY, MCI_NOTIFY, Longint(@mciPlayParms));
if dwReturn <> 0 then
begin
mciSendCommand(wDeviceID, MCI_CLOSE, 0, 0);
exit;
end;
end;


procedure deInitSound;
begin
mciSendCommand(wDeviceID, MCI_CLOSE, 0, 0);
DeleteFile("music.mid");
end;


end.


Желаю успехов


← →
Е.М. Саша   (2002-10-19 13:08) [2]

Слишком громоздко!



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.45 MB
Время: 0.01 c
3-4785
Sergey_El'f
2003-01-17 08:19
2003.02.03
Запрос из запроса, или сложные запросы при local sql


3-4777
michael1
2003-01-16 16:49
2003.02.03
Как в DBGrid делать горизонтальную прокрутку?


1-5026
DVM
2003-01-23 19:01
2003.02.03
Про память, хуки и указатели


1-5017
ser_ker
2003-01-23 14:39
2003.02.03
Как получить код завершения DOS-программы ?


3-4792
Alexandr
2003-01-15 12:12
2003.02.03
Формат даты в Interbase и не только




   Наверх