Вниз
Скачать: 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
1-4857
ipLenin
2003-01-20 10:55
2003.02.03
MaskEdit c маской


1-4877
Nikolay Enby
2003-01-24 22:35
2003.02.03
TNotifyIconData


3-4748
oleon
2003-01-15 11:52
2003.02.03
Здраствуйте. У меня сегодня день рождения. Есть функция UDF.


14-5251
Chizh
2003-01-16 14:41
2003.02.03
Сайты с компонентами


1-4860
euru
2003-01-22 20:15
2003.02.03
Использование object




   Наверх