![]() |
midi klingt nach MCI_PAUSE anders...
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:
Und eine Pause realisiere ich mit:
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;
Delphi-Quellcode:
Weiter mit:
MCISendCommand(DeviceID, MCI_PAUSE, MCI_NOTIFY, LongInt(@PlayParms));
Delphi-Quellcode:
Außerdem funktioniert das abfangen der MM_MCINOTIFY Message nicht:
MCISendCommand(DeviceID, MCI_PLAY, MCI_NOTIFY, LongInt(@PlayParms));
Delphi-Quellcode:
Kann mir hier jemand helfen?
procedure TForm1.MMMCINotify(var Msg: TMessage);
begin If Msg.Msg = MM_MCINOTIFY then MCISendCommand(DeviceID, MCI_CLOSE, 0, 0); end; Gruß Mazel |
Re: midi klingt nach MCI_PAUSE anders...
Keiner eine Idee?
|
Re: midi klingt nach MCI_PAUSE anders...
Hallo,
Bei mir ist es genauso, wenn ich eine Pause mache und dann weiter spiele, dann klingt auch alles anders. Wenn ich das Program schließe und wieder öffne dann gehts wieder normal. Keine Ahnung warum das so ist. Dank der Hilfe von Moyyer habe ich das Notify Ereigniss endlich hinbekommen, hier meine fertige Version:
Delphi-Quellcode:
unit Unit1;
interface uses Forms, MMSystem, StdCtrls, Classes, Controls, Dialogs, Messages; type TForm1 = class(TForm) Play: TButton; Stop: TButton; procedure PlayClick(Sender: TObject); procedure StopClick(Sender: TObject); procedure MMNotify(var Message: TMessage); message MM_MCINOTIFY; end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.StopClick(Sender: TObject); begin MCISendString(PChar('Stop ' + 'mysound'), nil, 0, 0); end; procedure TForm1.PlayClick(Sender: TObject); begin mciSendString(PChar('open "1.MID" alias mysound'), nil, 0, 0); mciSendString('play mysound notify', nil, 0, Form1.Handle); end; procedure TForm1.MMNotify(var Message: TMessage); begin showmessage('Lied Fertig'); end; end. |
Re: midi klingt nach MCI_PAUSE anders...
hi,
ich habe jetzt leider nicht die Zeit zu testen, soll es so funktionieren, also dass es dann nicht anders klingt? Gruß Mazel |
Re: midi klingt nach MCI_PAUSE anders...
Hallo,
nein, auch hier klingt es anders, aber MM_MCINOTIFY Message funktioniert, weil du geschrieben hast: Zitat:
aber er ist kürzer, und halt MM_MCINOTIFY funktioniert. Ich wollte dir nur den Quellcode den ich benütze zeigen. Warum das nach der Pause anders klingt weiß ich auch nicht...... Wenn das Lied neu gestartet wird, dann klingt es wieder normal |
Re: midi klingt nach MCI_PAUSE anders...
Hi,
stimmt, das Notify hat nicht funktioniert, es ist lange her als ich das alles ausprobiert habe. Ich habe verschiedene Variationen probiert aber irgendwie hab ich das nicht hinbekommen. Danke dir. Trotzdem bleibt das Problem mit den anderen Ton nach der Pause. Gruß Mazel |
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:52 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz