Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
Разработка программного обеспечения
KANSoftWare

Как играть MIDI без медиаплеера

Delphi , Мультимедиа , Видео

Как играть MIDI без медиаплеера

Автор: http://www.swissdelphicenter.ch

uses
  MMSystem;

// Play Midi

procedure TForm1.Button1Click;
const
  FileName = 'C:\YourFile.mid';
begin
  MCISendString(PChar('play ' + FileName), nil, 0, 0);
end;

// Stop Midi

procedure TForm1.Button1Click;
const
  FileName = 'C:\YourFile.mid';
begin
  MCISendString(PChar('stop ' + FileName), nil, 0, 0);
end;

Here's a translation of the content into Russian:

Похоже, вы пытаетесь запустить и остановить файл MIDI с помощью единицы MMSystem в Delphi. Однако, у вашего кода есть некоторые проблемы.

Сначала, процедура Button1Click объявлена дважды, что вызовет ошибку компилятора. Вы можете объединить эти процедуры или переименовать их, чтобы избежать конфликта.

Вторично, вы пытаетесь запустить и остановить файл MIDI с помощью функции MCISendString, но эта функция используется для отправки команд в устройство контроля медиа (MCI), а не для прямого запуска или остановки файла MIDI.

Чтобы запустить файл MIDI без использования медиаплеера, вы можете использовать функцию Windows API midiOutOpen, midiOutClose, midiOutReset и midiOutWriteFunc. Вот пример, как это можно сделать:

uses
  MMSystem;

const
  FileName = 'C:\ВашФайл.mid';
  MIDI_PORT = 0; // Default MIDI port

var
  hMIDI: HMIDIOUT;
  midiBuf: TMIDIHDR;

begin
   // Откройте устройство MIDI
  if midiOutOpen(hMIDI, MIDI_PORT, 0, 0, CALLBACK_NULL) <> MMSYSERR_NOERROR then
    RaiseLastOSError;

  try
     // Загрузите файл MIDI
    midiBuf.lpData := PChar(FileName);
    midiBuf.dwBufferLength := Length(FileName);
    midiBuf.dwFlags := MIDIFILE_OPEN or MIDIFILE_LOAD;
    midiOutOpen(hMIDI, MIDI_PORT, @midiBuf, 0, CALLBACK_NULL);

     // Запустите файл MIDI
    if midiOutWrite(hMIDI, @midiBuf, sizeof(midiBuf)) <> MMSYSERR_NOERROR then
      RaiseLastOSError;

     // Остановите файл MIDI
    midiBuf.dwFlags := MIDIFILE_STOP;
    midiOutWrite(hMIDI, @midiBuf, sizeof(midiBuf));
  finally
     // Закройте устройство MIDI
    midiOutClose(hMIDI);
  end;
end.

Код открывает устройство MIDI, загружает и запускает файл MIDI, а затем останавливает его. Обратите внимание, что вам нужно заменить 'C:\ВашФайл.mid' на реальный путь вашего файла MIDI.

Также пожалуйста, отметьте, что это только пример и может не работать в вашем приложении Delphi без изменений.

В статье описывается способ воспроизведения MIDI-файлов на компьютере без использования медиаплеера, используя код на языке Delphi и библиотеку MMSystem.


Комментарии и вопросы


Ваше мнение или вопрос к статье в виде простого текста (Tag <a href=... Disabled). Все комментарии модерируются, модератор оставляет за собой право удалить непонравившейся ему комментарий.

заголовок

e-mail

Ваше имя

Сообщение

Введите код




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.



:: Главная :: Видео ::


реклама



©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru Rambler's Top100

Время компиляции файла: 2024-05-19 17:53:24
2024-05-19 23:23:47/0.0046288967132568/2