Hintergrundmusik



  • 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.


  • Mod

    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 mit

    mciSendString("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 werden 👎

    gruß Micha



  • Helium schrieb:

    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!!!

    Kommentar: 3 Leute, die in einem String keinen Dateinamen ersetzen können. Schon peinlich... 🕶



  • Ich hab vor 4 Tagen angefangen mit C++, tut mir leid das ich noch soooo peinliche Fragen stelle 😡

    ThX promicha,
    wenigsten ein netter User


Anmelden zum Antworten