Hallo,
ich bastel gerade an einem privaten Projekt. Ein Teil des Projekts ist ein Mediaplayer für die bekanntesten Formate (MP3, OGG, WAV, usw.).
Die Zielplattform ist der Raspi 2 mit ALARM(Arch Linux). Momentan habe ich aber erstmal eine VM auf meinem Rechner eingerichtet, in der ich mit der BASS Lib rumexperimentieren kann.
Neben der Basis von Arch hab ich da noch die ALSA-Utils, den X-Server und Openbox als WM und ein paar Pakete mehr installiert. Lazarus (v1.6.0-1), fpc (v3.0.0-1) und fpcsrc (v3.0.0-1) aus den Arch Repos ist auch installiert.
Nun wollte ich mir eine Playerklasse bauen mit der ich dann über BASS Audiodateien wiedergeben kann. BASS hab ich von der (offizielen) Seite [url]un4seen.com[/url].
Leider finde ich die Doku der Library etwas dürftig in hinsicht auf die Installation. Deshalb wollte ich hier mal Fragen ob das jemand benutzt bzw. Erfahrung damit hat und mir helfen kann (Wo zum Beispiel die libbass.so hin muss und auf was ich sonst noch achten muss).
Das "lib32-libbass" Paket aus der AUR habe ich auch schon ausprobiert, leider ohne Erfolg.
Zu meinem konkreten Problem:
Vor einiger Zeit hatte ich das ganze schonmal auf dem Raspi zum laufen bekommen. Habe seitdem aber die SD-Karte nochmal neu formatiert also ist das auch wieder weg. Nun habe ich zwei mögliche Ausgänge wenn ich die Unit BASS einbinde und versuche über die IDE zu starten.
1. /usr/bin/ld: cannot find -lbass <-- libbass.so wurde nicht gefunden? Die Fehlermeldung hatte ich bei dem ersten Versuch damals auch schon. Das hab ich behoben bekommen indem ich die lib an die richtige stelle verschoben hab (die fällt mir aber nichtmehr ein).
2. Der Debugger stürzt ab. An was ich mich noch erinnern kann ist das es Probleme mit "gdb -exec-run command" gab. Die genaue Fehlermeldung füge ich heut Abend noch hinzu. Bin aber gerade noch auf Arbeit.
Ich hoffe ich habe alle wichtigen Infos angegeben und das alles verständlich ist. Ansonsten bitte Bescheid geben was noch fehlt oder unverständlich ist.
Danke schonmal im voraus für eure Hilfe.
PS: Es muss auch nicht unbedingt BASS sein. Bin also auch für andere Möglichkeiten offen, die vielleicht einfacher oder besser sind.
Edit: Hab mal einen Screen von dem GDB Absturz angehangen.
BASS Library unter Arch Linux
-
- Beiträge: 106
- Registriert: Mi 3. Feb 2016, 09:39
- OS, Lazarus, FPC: Linux(Arch Linux(+ARM)/Minibian) (L 1.6.0 FPC 3.0.0)
- CPU-Target: 32/64Bit,ARM(RPi)
- Wohnort: nahe Grimma
BASS Library unter Arch Linux
Mfg Requion
Das beste an Standards ist, dass es so viele davon gibt.
Das beste an Standards ist, dass es so viele davon gibt.
-
- Beiträge: 519
- Registriert: Di 19. Mai 2015, 20:05
- OS, Lazarus, FPC: Linux Mint 20 Cinnamon,Lazarus 2.2.6 (rev lazarus_2_2_6) FPC 3.2.2 x86_64-linux-
- CPU-Target: x86_64-linux-gtk2
Re: BASS Library unter Arch Linux
Hallo Requion,
mit Arch Linux hab ich leider noch nicht gearbeitet unter Ubuntu muss die libbass.so ins Verzeichnis usr/lib kopiert werden. Vielleicht hilft dir das weiter. Außerdem musst du die bass.pas in dein Projekt einbinden. Schau mal auf die Seite http://www.gausi.de/memp.html. Hier ist alles super erklärt (leider für windows). Wenn du mal als Test eine einzelne mp3 abspielen möchtest kannst du folgenden minimal Code nutzen (läuft bei mir unter Ubuntu). Du musst nur eine mp3 in dein Arbeitsverzeichnis kopieren und den Namen anpassen.
mit Arch Linux hab ich leider noch nicht gearbeitet unter Ubuntu muss die libbass.so ins Verzeichnis usr/lib kopiert werden. Vielleicht hilft dir das weiter. Außerdem musst du die bass.pas in dein Projekt einbinden. Schau mal auf die Seite http://www.gausi.de/memp.html. Hier ist alles super erklärt (leider für windows). Wenn du mal als Test eine einzelne mp3 abspielen möchtest kannst du folgenden minimal Code nutzen (läuft bei mir unter Ubuntu). Du musst nur eine mp3 in dein Arbeitsverzeichnis kopieren und den Namen anpassen.
Code: Alles auswählen
unit Unit1;
{$mode objfpc}{$H+}
interface
uses
Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, StdCtrls,
bass;
type
{ TForm1 }
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
procedure FormClose(Sender: TObject; var CloseAction: TCloseAction);
procedure FormCreate(Sender: TObject);
private
{ private declarations }
public
{ public declarations }
end;
var
Form1 : TForm1;
fMainstream : DWord;
implementation
{$R *.lfm}
{ TForm1 }
procedure TForm1.FormCreate(Sender: TObject);
begin
Bass_Init(-1,44100,Bass_Device_CPSpeakers,Nil,Nil);
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
BASS_StreamFree(fMainStream); //geht auch ohne, verhindert gleichzeitiges abspielen
fMainstream:=Bass_StreamCreateFile(False,PChar('AudioDatei.mp3'),0,0,0); // für AudioDatei.mp3 den richtigen Namen eingeben!
Bass_ChannelPlay(fMainStream,true);
end;
procedure TForm1.FormClose(Sender: TObject; var CloseAction: TCloseAction);
begin
BASS_StreamFree(fMainStream);
end;
end.
-
- Beiträge: 106
- Registriert: Mi 3. Feb 2016, 09:39
- OS, Lazarus, FPC: Linux(Arch Linux(+ARM)/Minibian) (L 1.6.0 FPC 3.0.0)
- CPU-Target: 32/64Bit,ARM(RPi)
- Wohnort: nahe Grimma
Re: BASS Library unter Arch Linux
Danke wennerer. Könntest du mir vielleicht noch die Rechtevergabe und den Besitzer/die Gruppe mitteilen?
Die Bass.pas ist im Projektordner und die Unit ist eingebunden. Ich vermute das es eben an der lib liegt.
Danke für das Codebeispiel. Das werde ich probieren wenn ich das erstmal sauber kompiliert bekomme .
Ich werd mir mal fix eine Debian VM zusammenschmeißen und das da mal testen. Kann ja für den Raspi auch Debian nehmen.
Die Bass.pas ist im Projektordner und die Unit ist eingebunden. Ich vermute das es eben an der lib liegt.
Danke für das Codebeispiel. Das werde ich probieren wenn ich das erstmal sauber kompiliert bekomme .
Ich werd mir mal fix eine Debian VM zusammenschmeißen und das da mal testen. Kann ja für den Raspi auch Debian nehmen.
Mfg Requion
Das beste an Standards ist, dass es so viele davon gibt.
Das beste an Standards ist, dass es so viele davon gibt.