AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Delphi midi klingt nach MCI_PAUSE anders...
Thema durchsuchen
Ansicht
Themen-Optionen

midi klingt nach MCI_PAUSE anders...

Ein Thema von Mazel · begonnen am 6. Mai 2006 · letzter Beitrag vom 23. Nov 2006
Antwort Antwort
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, 23: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
Benutzerbild von Mazel
Mazel

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

Re: midi klingt nach MCI_PAUSE anders...

  Alt 7. Mai 2006, 17:29
Keiner eine Idee?
Marcel Jänicke
www.mj-software.net
  Mit Zitat antworten Zitat
ferby

Registriert seit: 15. Aug 2004
Ort: Wien
841 Beiträge
 
Delphi 2010 Enterprise
 
#3

Re: midi klingt nach MCI_PAUSE anders...

  Alt 22. Nov 2006, 19:28
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.
  Mit Zitat antworten Zitat
Benutzerbild von Mazel
Mazel

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

Re: midi klingt nach MCI_PAUSE anders...

  Alt 22. Nov 2006, 21:34
hi,

ich habe jetzt leider nicht die Zeit zu testen, soll es so funktionieren, also dass es dann nicht anders klingt?

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

Registriert seit: 15. Aug 2004
Ort: Wien
841 Beiträge
 
Delphi 2010 Enterprise
 
#5

Re: midi klingt nach MCI_PAUSE anders...

  Alt 22. Nov 2006, 22:43
Hallo,

nein, auch hier klingt es anders, aber MM_MCINOTIFY Message funktioniert,
weil du geschrieben hast:

Zitat:
Außerdem funktioniert das abfangen der MM_MCINOTIFY Message nicht:
Mein Quellcode macht glaub ich genau das selbe wie deiner, (oder?)
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
  Mit Zitat antworten Zitat
Benutzerbild von Mazel
Mazel

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

Re: midi klingt nach MCI_PAUSE anders...

  Alt 23. Nov 2006, 14:49
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
Marcel Jänicke
www.mj-software.net
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:25 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz