Laden...

SimpleBassPlay

Erstellt von Kravnos vor 15 Jahren Letzter Beitrag vor 11 Jahren 10.705 Views
K
Kravnos Themenstarter:in
46 Beiträge seit 2007
vor 15 Jahren
SimpleBassPlay

Hallo an Alle.

Ich habe mich in der Vergangenheit mit Bass.Net beschäftigt. Für mich war es schwierig mit der API umzugehen da es ja doch recht "umständlich" gemacht ist. Das rührt aus der Vielzahl von Möglichkeiten die Bass.Net bietet. Um es Einsteigern wie mir einfacher zu machen habe ich mal eine sehr stark vereinfachte Klasse geschrieben und möchte hier mal einen kleinen Workshop einbinden.

  1. Was sind die Vorteile zu DirectX.Net
    -Der User muss sich nicht die über 100 MB grosse DirectX SDK runterladen.
    -Es ist relativ einfach eine Visualisierung darzustellen.
    -Beherrsch mann die API erst einmal kann man damit sehr viel machen und sie ist nur 1 MB gross.

  2. Was brauche ich dafür?

  3. Lade dir die Bass.Net API runter und installiere Sie. erhältlich hier

  4. Nun brauchen wir noch die originale Bass.dll, erhältlich hier. In der Zip-Datei ist die bass.dll enthalten. Diese musst du in deinen Debug-Ordner deines Porjektes kopieren. Damit sind wir in der Lage MP3 sowie auch OGG-Dateien abzuspielen.

  5. Lade dir meine SimpleBassPlay.cs runter (ganz unten als Dateianhang) und binde es in dein Porjekt ein. Dabei ist zu beachten dass du noch den Namespace deinem Programm-Namespace angleichen musst. Nun noch einen Verweis mit Rechtsklick auf "Verweise" und dann "Verweis hinzufügen" dort "BASS.NET API for .NET 2.0" hinzufügen.

  6. Und los geht es

Wie bedient mann die SinpleBassPlay-Klasse?
Als erstes erstellen wir uns ein Objekt von der Klasse.

SimpleBassPlay s = new SimpleBassPlay();

Nun initialisieren wir das Audioobjekt erstmal.

s.InitialBass();

Als nächstes geben wir die Läutstärke von 0 - 100 Porzent an.

s.SetLautstärke(75);

Jetzt können wir mit der Wiedergabe beginnen. Komplette Pfadangabe. Z.B. "D:\Musik\hallo.mp3"

s.Play("DeineDatei.mp3");

Infos über den eingetragenen Interpret & Titel rufen wir so ab.

Titel=s.tags.artist +" - "+s.tags.title;

Um die Lautstärke herauszufinden

s.GetVolume()

Soll die Wiedergabe Pausiert werden oder eine bereits pausierte Wiedergabe fortsetzt geht das mit

s.Pause();

Es gibt Situationen in denen es nützlich ist zu wissen ob die Wiedergabe schon beendet ist, um das abzufragen

s.IsPlaying()

Wenn man wissen will wie die Aktuelle Position in Sekunden der Wiedergabe ist

s.GetCurrentPosition();

Um die Dauer in Sekunden abzurufen

s.GetDuration();

Die Aktuelle Position in Sekunden zu Setzen geht so

s.SetCurentposition(112);

Wenn wir die Wiedergabe stoppen wollen

s.Stop();

Soo ich hoffe ich konnte wem damit helfen und habe mich nicht zu kompliziert ausgedrückt. Schreibt mir ob es euch geholfen hat. Bis dahin viel spass beim proggen und basteln.

Liebe Grüsse

Kravnos

PS: Ich würde mich über Antworten freuen 🙂

A
3 Beiträge seit 2009
vor 15 Jahren
SimpleBassPlay

Hi, ich habe dies nach deiner Anleitung gemacht. Habe bei verweise die bass.net eingefügt. Beim ausführen wird diese Zeile angekreidet: Bass.BASS_PluginLoad("basswma.dll");

Meine eigentliches Problem ist, das ich nen Sound aus ner resource abspielen will und das dann auf möglichst vielen fremden rechnern läuft! Habe es mit direktx hinbekommen, dann ging es jedoch auf beiden test PC's noch nicht.

Wie ist das mit der Bass.dll? Muss ich die dann extra mit meiner xxx.exe datei mitschicken? Wollte halt eine Datei die alles kann und überall läuft, dachte das directx hat doch jeder drauf....

C
116 Beiträge seit 2004
vor 15 Jahren

Die Bass.dll musst du mitliefern, da dies eine extra Bibliothek ist, die mit DirectX nichts zu tun hast.

K
Kravnos Themenstarter:in
46 Beiträge seit 2007
vor 15 Jahren

ja die bass.dll muss auf jeden Fall immer im Programmverzeichnis liegen. Wenn du Addondateien wie die basswma nutzen willst müssen diese auch dabei. Das ist aber auch der einzige Nachteil. Wie mann es hinbekommt dass die bass.dll z.B in deine exe miteingebunden wird weiss ich leider nicht. Der Gedanke ist natürlich verführerisch 😉

Liebe Grüsse

Kravnos

PS: Meinen fertigen Player könnt ihr übrigends hier als Porjekdatei herunterlanden. Tipp: lest die Readme.htm wegen der Tastenkombies 😉)

K
Kravnos Themenstarter:in
46 Beiträge seit 2007
vor 15 Jahren

Hallo nochmal, dickes SORRY an alle die an der Fehlermeldung dass er die basswma.dll nicht finden kann gescheitert sind. Sie ist ein Addon dass ich als so selbstverständlich verstand dass ich garnicht daran gedacht hatte, dass ihr ja garnicht wissen könnt (weil ich es nicht erwähnt habe) dass diese Datei dann natürlich auch im Debugverzeichniss liegen muss. Sonnst versucht er diese Datei zu öffnen und findet sie natürlich nicht. Ich habe die Klasse aktualiesiert und jetzt tritt dieser Fehler nicht mehr auf.

Liebe Grüsse

Kravnos

F
1 Beiträge seit 2013
vor 11 Jahren
Danke!!

Ich habe mich extra für diese Antwort hier Regestriert.

DANKE!

Ich programmiere jetzt schon eine ganze Weile, hatte aber mit Bass so meine
Problemchen. Insbesondere auf die schnelle!
Mit deiner Erweiterung von Bass ist es jetzt allerdings super Easy!

Es stört dich aber wohl hoffentlich nicht das ich es für meine Zwecke noch etwas erweitert habe. Nähmlich um die Funktion

setAudioOutput(int Id);

mit welcher ich jederzeit das OutputDevice einstellen kann.

Aber nocheinmal DANKE

Mit freundlichen Grüßen
ForTN0X