Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.02.03;
Скачать: 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 вся ветка

Текущий архив: 2003.02.03;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.026 c
14-5197
Игорь Досужев
2003-01-14 02:24
2003.02.03
Спам - что это? Есть ли четкое определение?


3-4739
viper
2003-01-15 17:15
2003.02.03
Проблема вывода на печать в FastReports!


3-4819
Новичек
2003-01-16 19:30
2003.02.03
Посоветуйте, пожалуйста, компоненты для прямого доступа к MySQL..


6-5106
brestmarket
2002-11-07 02:37
2003.02.03
Отправка emails через SMTP-сервер авторизации?


1-4938
phantom2040
2003-01-23 08:40
2003.02.03
Еще раз про ImageList