AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Delphi Im Hintergrund Musik endlos abspielen
Thema durchsuchen
Ansicht
Themen-Optionen

Im Hintergrund Musik endlos abspielen

Ein Thema von glowwurm · begonnen am 27. Mai 2004 · letzter Beitrag vom 28. Mai 2004
Antwort Antwort
glowwurm

Registriert seit: 17. Mai 2004
2 Beiträge
 
#1

Im Hintergrund Musik endlos abspielen

  Alt 27. Mai 2004, 15:28
Hallo zusammen,

Ich hab ein Problem bzw. mehrere mit dem Abspielen von Midis. Ich hab auch schon in diesem Forum gesucht, aber nichts passendes gefunden...

Hier zuerst einmal der Quellcode:
Code:
// Zum starten
  MCISendString(PChar('play ' + FileName), nil, 0, 0);

//zum stoppen
  MCISendString(PChar('stop ' + FileName), nil, 0, 0);

//Filename = Name des Midi-Files.
Mein Problem ist nun, dass ich das Midi im HIntergund, während andere Teile des Programms noch weiter laufen in einer Endlosschleife abspielen will. Wenn ich dazu aber eine while-Schleife benutze, läuft der Rest des Progs nicht mehr ab...was es ja aber soll
Habt ihr mir eine Lösung?
  Mit Zitat antworten Zitat
fxbasic
(Gast)

n/a Beiträge
 
#2

Re: Im Hintergrund Musik endlos abspielen

  Alt 27. Mai 2004, 15:50
Hi, glowwurm

zuerst einmal herzlich willkommen in der Delphi-Praxis!

(Endlich durfte ich das auch mal sagen)

Vielleicht hilft dir das hier weiter:

http://www.delphi-source.de/tipps/multimedia/?id=204

Buy, fxbasic
  Mit Zitat antworten Zitat
glowwurm

Registriert seit: 17. Mai 2004
2 Beiträge
 
#3

Re: Im Hintergrund Musik endlos abspielen

  Alt 28. Mai 2004, 13:08
Hm, das kannte ich schon, aber man kann damit leider keine Midis abspiele nur .wav

Naja, macht nichts. Werden die Midis halt in Wave konvertiert, wenn es nich anders geht

Vielen Dank für die Anwort
  Mit Zitat antworten Zitat
StefanDP

Registriert seit: 11. Apr 2004
294 Beiträge
 
#4

Re: Im Hintergrund Musik endlos abspielen

  Alt 28. Mai 2004, 13:24
Du könntest das auch in einem Thread laufen lassen!
Datei - Neu - Weitere - Thread Objekt
Klassenname z.b. TMusik

und dann
Delphi-Quellcode:
procedure TMusik.Execute;
begin
  // hier machst du einfach eine endlosschleife rein z.b.
  while true do
    MCISendString(PChar('play ' + FileName), nil, 0, 0);
end;
das ganze kannst du dann folgendermaßen starten:
Delphi-Quellcode:
implementation

uses Unit2; // oder wo halt dein Thread-Objekt ist

...

procedure TForm1.Button1Click(Sender: TObject);
var
  MeinThread: TMusik;
begin
  MeinThread := TMusik.Create(false); // durch false wird der Thread sofort gestartet
end;

so oder so ähnlich müssts funzen
stefan
  Mit Zitat antworten Zitat
teebee

Registriert seit: 17. Jan 2003
Ort: Köln
460 Beiträge
 
Delphi 6 Professional
 
#5

Re: Im Hintergrund Musik endlos abspielen

  Alt 28. Mai 2004, 19:48
Du kanst Dir von Windows eine Nachricht schicken lassen, wenn das Stück zu Ende ist:
Delphi-Quellcode:
 // zuerst MidiFile öffnen (mit Alias)
mciSendString(PChar('open "'+MidiFile+'" alias mymidi'),nil,0,0);

// dann abspielen (mit Notify)
mciSendString('play mymidi from 0 notify',nil,0,Handle);
Durch das 'notify' wird immer dann, wenn das Stück zu Ende ist, eine MM_MCINOTIFY-Nachricht an das angegebene Fenster (Handle) gesendet. Die muss nur noch ausgewertet werden:
Delphi-Quellcode:
public
  ...
  procedure MidiLoop(Var Message: TMessage); message MM_MCINOTIFY;
  ...

Procedure TForm1.MidiLoop(Var Message: TMessage);
Begin
  mciSendString('play mymidi from 0 notify',nil,0,Handle); // und neu abspielen
End;
Sollte noch das einfachste sein...

Gruß, teebee
  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 03:45 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