BASS Library unter Arch Linux

Für Probleme bezüglich Grafik, Audio, GL, ACS, ...
Antworten
Requion
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

Beitrag von Requion »

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.
Dateianhänge
laz_gdb_bug_bass.png
Mfg Requion

Das beste an Standards ist, dass es so viele davon gibt.

wennerer
Beiträge: 507
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

Beitrag von wennerer »

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.

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.
 

Requion
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

Beitrag von Requion »

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 :D.

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.

Antworten