Bass.dll unter C++ spielt nichts



  • Hallo!

    Habe noch zu meiner Delphi Zeit ein Programm geschrieben, welche mit der Bass.dll Sounds wiedergibt.
    Nun lerne ich gerade C++ und wollte mich damit beschäftigen dieses Programm in C++ zu übersetzen. Um erstmal da reinzukommen wollte ich es überhaupt erstmal hinbekommen das mein Programm überhaupt mal irgendeinen Sound wiedergibt.

    Dazu habe ich den Code einfach mal mit etwas nachdenken übersetzt.
    Hier stücke des Delphi originals: (BASS_Init steht im FormCreate, taucht also hier nicht auf)

    procedure TBassPlayer.PlaySound(aPath:Char);
    var
      aCount:Cardinal;
    begin
      Bass_StreamFree(aCount);
      aCount := Bass_StreamCreateFile(False, PChar(aPath), 0, 0, 0);
      Bass_ChannelPlay(aCount,true);
    end;
    

    Ein paar Sachen wurden aus diesem Code herausgeschnitten, aber nur Teile wie "Bass_ChannelSetAttribute(aCount,BASS_ATTRIB_VOL,aVol);"
    In einer noch anderen Version wurde hier aCount nicht als Cardinal sondern als HSTREAM deklariert, funktionierte aber genauso.

    Hier nun mein darauf basierendes C++ Programm

    #include <iostream>
    #include <cstdlib>
    #include <windows.h>
    #pragma comment(lib, "bass.a")
    #include <bass.h>
    using namespace std;
    
    /* run this program using the console pauser or add your own getch, system("pause") or input loop */
    
    int main(int argc, char *argv[])
    {
      cout << "Willkommen im Konsolen-MIDI-Sample-Player" << endl;
      cout << "*****************************************" << endl;
      //Bass.dll Initalisieren
      HWND handle;
      char file[255] = "C:\Zoom H2\STE-018.wav";
      HSTREAM str;
      if (BASS_Init(-1,44100,0,handle,0) == false)
        {
          cout << "Soundsystem konnte nicht initialisiert werden";
        }
      cout << "Spiele Testsound" << endl;
      BASS_StreamFree(str);
      str = BASS_StreamCreateFile(false,file,0,0,0);
      BASS_ChannelPlay(str,true);
      int eingabe;
      cin >> eingabe;
      return 0;
    }
    

    Das Programm Kompiliert, spielt aber keinen Ton. Sehr ihr eventuell einen Fehler?

    mfg. Magic94



  • Wenn du auf Fehler prüfen würdest/könntest, würdest du feststellen, dass die Datei nicht gefunden wird. Ein einzelnes \ in einem String kommt nicht als Pfadtrenner an.

    char file[255] = "C:\\Zoom H2\\STE-018.wav";
    // oder
      char file[255] = "C:/Zoom H2/STE-018.wav";
    

    hilft vielleicht.



  • Leider nein 😕
    ich schau mal ob es eine Option dazu gibt das er mir sagt ob er die Datei findet oder nicht.



  • Er sagt mir nun, ob die Datei vorhanden ist oder nicht:

    int main(int argc, char *argv[])
    {
      cout << "Willkommen im Konsolen-MIDI-Sample-Player" << endl;
      cout << "*****************************************" << endl;
      //Bass.dll Initalisieren
      HWND handle;
      char file[255] = "C:\\Zoom H2\\STE-018.wav";
      HSTREAM str;
      if (BASS_Init(-1,44100,0,handle,0) == false)
        {
          cout << "Soundsystem konnte nicht initialisiert werden";
        }
      cout << "Spiele Testsound" << endl;
      BASS_StreamFree(str);
      if (str = BASS_StreamCreateFile(false,file,0,0,0))
        {
        BASS_ChannelPlay(str,true);
        }
      else
        {
        cout << "File not Found" << endl;
        }
      int eingabe;
      cin >> eingabe;
      return 0;
    }
    

    Habs auch getestet, wenn ich das so lasse sagt er nicht "File not Found", aber wenn ich da einach mal C:\\Zoom H2\\STE-0199998.wav eingebe gibt er wirklich File not Found aus.



  • Fehler gefunden!

    die handle Variable war nicht initialisiert.
    Also statt:

    BASS_Init(-1,44100,0,handle,0) == false
    

    schreibt man:

    BASS_Init(-1,44100,0,0,0) == false
    

Log in to reply