Hintergrundmusik



  • Hä? Was das den für ne seite ^^
    wollte doch nur wissen wie ich ne Midi als Background laufen lassen kann.



  • Hä? Was das den für ne seite ^^

    Dumme Frage. Die von Allegro. (Keine Kommentare von wegen dumme Fragen gäbe es nicht!)

    wollte doch nur wissen wie ich ne Midi als Background laufen lassen kann.

    Wenn du es ganz einfach haben willst, setz dich ma mit Allegro auseinander.

    www.allegro.cc



  • mit c++ alleine kannst du keine musik machen.
    du musst schon irgendeine bibilothek benutzen, wie zb: allegro oder irgendwas anderes. 🙂

    versuch doch mal zu erklären was du genau machen willst.
    spiel, windowsanwendung oder was weis ich



  • Ich bin noch nicht sehr bewandert in C++ 😞
    Heißt hab kein Plan was allegro sein soll 😞

    Na 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 starten

    sndPlaySoundA("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.


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


Anmelden zum Antworten