Hintergrundmusik
-
Ich bin noch nicht sehr bewandert in C++
Heißt hab kein Plan was allegro sein sollNa es soll auf so nem Standartformular/Anwendung laufen welche glei am Start vom Borland C+ Builder kommt.
ne wave kann ich ja mit nem Buttondruck startensndPlaySoundA("c:\.....wav",0);
Aber kann man da nicht genauso einfach ne Midi in Hintergrund legen?
-
Dieser Thread wurde von Moderator/in davie aus dem Forum C++ in das Forum Borland C++ Builder (VCL/CLX) verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.
-
Da du nach VCL verschoben wurdest: sieh dir mal TMediaPlayer an.
Ansonsten (alles WinAPI):
// start mciSendString("open c:\\your.mid type sequencer alias MIDI", NULL, 0, 0); mciSendString("play MIDI", NULL, 0, 0); // stop mciSendString("close MIDI", NULL, 0, 0);
Wav-Files kannst du auch einfach mit PlaySound() abspielen, dabei den SND_ASYNC- Parameter benutzen.
-
hmm das geht net
Wo muss ich das den hinschreiben? Ach und is das Background oder öffnet sich dann der Mediaplayer?Code is
//--------------------------------------------------------------------------- #include <vcl.h> #pragma hdrstop #include "Unit1.h" //--------------------------------------------------------------------------- #pragma package(smart_init) #pragma resource "*.dfm" TForm1 *Form1; //--------------------------------------------------------------------------- __fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner) { } //---------------------------------------------------------------------------
-
Das ist Background-Mukke. Du musst noch die mmsystem.h inkludieren.
-
mmsystem.h hab ich includet, hab ja sndPlaySoundA("\1.wav",0); was geht.
Wie würde das// start mciSendString("open c:\\your.mid type sequencer alias MIDI", NULL, 0, 0); mciSendString("play MIDI", NULL, 0, 0); // stop mciSendString("close MIDI", NULL, 0, 0);
mit der datei "bg.mid" aussehen?
-
ttester schrieb:
mit der datei "bg.mid" aussehen?
- Kein Kommentar -
-
Weil sich bei
mciSendString("\bg.mid", NULL, 0, 0);
mciSendString("play MIDI", NULL, 0, 0);garnix tut, darum frag ich.
-
Hallo
ist doch logisch
mciSendString("\bg.mid", NULL, 0, 0); mciSendString("play MIDI", NULL, 0, 0);
versuchs dochmal mit
mciSendString("\\bg.mid", NULL, 0, 0); mciSendString("play MIDI", NULL, 0, 0);
wenn deim midi-File in der Root ist ???
MfG
Klaus
-
@KlausB: - Kein Kommentar -
-
also bei
mciSendString("\bg.mid", NULL, 0, 0);
mciSendString("play MIDI", NULL, 0, 0);bleibt es ruhig. Wo muss ich das eigendlich hinschreiben wenn die Midi bei Programmaufruf starten soll? Vor oder nach TForm1 *Form1; ?
-
Für was steht '\b'? Genau für BELL (normalerweise ein Pipen des in den PC eingebauten Lautsprechers).
Guck dir mal KlausB's Antwort an!!!
-
So hab die Midi jetzt test genannt.
sie startet weder mitmciSendString("c:\test.mid", NULL, 0, 0);
mciSendString("play MIDI", NULL, 0, 0);noch mit
mciSendString("c:\\test.mid", NULL, 0, 0);
mciSendString("play MIDI", NULL, 0, 0);habs mal in einem Timer versucht, geht aber auch net
void __fastcall TForm1::Timer1Timer(TObject *Sender)
{
mciSendString("c:\\test.mid", NULL, 0, 0);
mciSendString("play MIDI", NULL, 0, 0);
}
-
Hast du der MCI auch schon gesagt das er das MIDI Gerät ÖFFNEN soll?
mciSendString("open c:\\test.mid type sequencer alias MIDI", NULL, 0, 0); mciSendString("play MIDI", NULL, 0, 0);
Und liegt die Datei "test.mid" auch im Ordner "C:" ?
Des weiteren lege diesen Code z.B. in "OnFormShow" Ereignissroutine der Form
gruß Micha
Edit PS:
Lese mal was über Strings, dann verstehst du auch warum \\ richtig ist!
-
Oh das geht, thx.
Und jetzt nur noch das es immer wiederholt wird, also loop oder so, dann is perfekt
THx
-
änder:
mciSendString("play MIDI repeat", NULL, 0, 0);
gruß Micha
-
ttester schrieb:
Und jetzt nur noch das es immer wiederholt wird
Für einen Blick in die Hilfe hat es wieder nicht gereicht?
Ich hoffe ernsthaft, dass dir deine Fragen hier wenigstens ein bischen peinlich sind.
-
Jansen schrieb:
ttester schrieb:
Und jetzt nur noch das es immer wiederholt wird
Für einen Blick in die Hilfe hat es wieder nicht gereicht?
Ich hoffe ernsthaft, dass dir deine Fragen hier wenigstens ein bischen peinlich sind.
Ist wohl Richtig, aber das steht in der Hilfe zu Windows SDK und die ist
in Englisch und vorallem nicht so gut Übersichtlich wie die Borland-Hilfe.
Wenn man mit der WindowsSDK-Hilfe nicht klar kommt, kann ich das Verstehen
und liefere lieber ne Lösung.gruß Micha
-
Das war ausdrücklich an ttester gerichtet.
Aber weil du dich angesprochen fühlst: Deine Kritik an der SDK-Hilfe kann ich nachvollziehen, genau aus diesem Grund habe ich selbst auch ein konkretes Code-Beispiel gegeben, entgegen meinen üblichen Gewohnheiten.
Aber hast du wirklich den Eindruck, das ttester daraufhin a) überhaupt mal in die Hilfe gesehen und es nur nicht verstanden hat, und dass er b) auch nur andeutungsweise versucht hat, die Code-Beispiele zu verstehen, anstatt sie einfach abzukopieren?
-
Hmmm,
ich glaub du hast Recht Jansen, mal Abgesehen von der Hilfe findet man
selbst im Forum viele Ansätze und über Google wird man auch fündig.
Wenn ich mir mal diesen Thread genauer Betrachte dann sieht das wirklich
aus wie: "Schreib du Lösung, ich mach C.a.P."Ich fühlte mich nicht Angesprochen, ich wollte ttester nur in Schutz nehmen,
da der Stoff ja nicht einfach ist, aber wie ich das jetzt sehe, wird er für
ttester auch nie einfach werdengruß Micha