Einzelnen Beitrag anzeigen

Benutzerbild von Mazel
Mazel

Registriert seit: 11. Nov 2005
Ort: Leipzig
831 Beiträge
 
#1

midi klingt nach MCI_PAUSE anders...

  Alt 6. Mai 2006, 22:04
Hallo,

mir ist aufgefallen, das in meinem eigenen Player alle *.midi Dateien nach einer Pause MCI_PAUSE anders klingen. Um eine MIDI zu öffnen und abzuspielen nutze ich folgenden Code:
Delphi-Quellcode:
var
  dwFlags: LongInt;
  DeviceID: Word;
  PlayParms: TMCI_PLAY_PARMS;

procedure TForm1.MIDIObject;
var
  MCIError: Integer;
  OpenParms: TMCI_OPEN_PARMS;
  SetParms: TMCI_SET_PARMS;

begin
  with OpenParms do
   begin
    dwCallback:=Handle; // TForm1.Handle
    lpstrDeviceType:=PChar('Sequencer');
    lpstrElementName:=PChar(FileName);
   end;
  dwFlags:=MCI_OPEN_ELEMENT or MCI_OPEN_TYPE;
  MCIError:=MCISendCommand(0, MCI_OPEN, dwFlags, Longint(@OpenParms));
  If MCIError = 0 then DeviceID:=OpenParms.wDeviceID;
  If DeviceID <> 0 then
   begin
    dwFlags:=MCI_SET_TIME_FORMAT;
    SetParms.dwCallback:=Handle; // TForm1.Handle
    SetParms.dwTimeFormat:=MCI_FORMAT_MILLISECONDS;
    MCISendCommand(DeviceID, MCI_SET, dwFlags, Longint(@SetParms));
   end;
  PlayParms.dwCallback:=MCI_NOTIFY;
  MCIError:=MCISendCommand(DeviceID, MCI_PLAY, MCI_NOTIFY, LongInt(@PlayParms));
end;
Und eine Pause realisiere ich mit:
  MCISendCommand(DeviceID, MCI_PAUSE, MCI_NOTIFY, LongInt(@PlayParms)); Weiter mit:
  MCISendCommand(DeviceID, MCI_PLAY, MCI_NOTIFY, LongInt(@PlayParms)); Außerdem funktioniert das abfangen der MM_MCINOTIFY Message nicht:
Delphi-Quellcode:
procedure TForm1.MMMCINotify(var Msg: TMessage);
begin
  If Msg.Msg = MM_MCINOTIFY then MCISendCommand(DeviceID, MCI_CLOSE, 0, 0);
end;
Kann mir hier jemand helfen?

Gruß
Mazel
Marcel Jänicke
www.mj-software.net
  Mit Zitat antworten Zitat