[LAZARUS] Muzyka pod linuksem

0

Witam szanownych pp. Forumowiczów.
Mam taki problem. W jednym ze swoich programów chciałbym, by mogły być odtwarzane dźwięki (wav,mp3,ogg). W związku z tym, czy istnieje jakiś odpowiednik biblioteki bass.dll ale na linuksa? Jeśli podobny temat był już poruszany na forum - przepraszam, nie udało mi się go odnaleźć.
Tak na boku - Lazarusa używam od niedawna, co o nim sądzicie?Jeszcze się do niego nie przekonałem. BTW: Co poradzić na 5,2MB pliku wynikowego?? Z góry dziękuję za poświęconą mi cierpliwość.

Z poważaniem,
mi.

0

Jak chodzi o Lazarusa - ma parę błędów, ale jest świetny. Jak chodzi o to, jak się pozbyć dużego pliku, to już to dwa razy tutaj pisałem i widziałem gdzieś w trzech miejscach na forum Lazarusa. Jak będę miał ciut wolnego czasu, to chyba jakiegoś FAQ na ten temat napiszę. Generalnie wyłączasz pokazywanie numerów linii przy RE w opcjach projektu. To ok. 6-krotnie zmniejsza wielkość pliku wykonywalnego. Lazarus ma też zaletę jak chodzi o luicencję - możesz sprzedawać napisane w nim programy bez konieczności pakowania 4000 zł za wersję Pro, o Ent nie wspominając (tak w przypadku Delphi jest).

0

W jednym ze swoich programów chciałbym, by mogły być odtwarzane dźwięki (wav,mp3,ogg). W związku z tym, czy istnieje jakiś odpowiednik biblioteki bass.dll ale na linuksa?.
FMOD

0

Ok, dziękuję, udało mi się "zejść" z rozmiarem pliku wykonywalnego czystego projektu do 1,7MB. Uda się coś jeszcze wykombinować? Dziękuję, o FMOD zapomniałem, znałem to jeszcze spod Windoza.

0

No ale niestety, wywala kompilator mi wywala błąd...

Error: Asm: [fldsw reg16] invalid combination of opcode and operands

W pliku fmod.pas, jeszcze nie wywołując żadnej funkcji, w initialization.

{$ifdef FPC} //FPC do not have this function in its RTL
const
  Default8087CW = $1332; //according to the FPC site it's the value used in the
                         //startup code.
procedure Set8087CW( value :word ); Assembler;
asm
   FLDCW  value        // <--- to tu jest błąd
end;
{$endif}

initialization
  { Save the current FPU state and then disable FPU exceptions }
  Saved8087CW := Default8087CW;
  Set8087CW($133f); { Disable all fpu exceptions }

finalization
  { Reset the FPU to the previous state }
  Set8087CW(Saved8087CW);

end.

Używam Fedory 2. Serdecznie proszę o pomoc, nie znam ASMa (jeśli rzeczywiście o to chodzi), szukałem i na forum Lazarusa i FMOD, nie znalazłem NIC na ten temat...

0

mi: sam mam ten sam problem, nie udało mi się go jeszcze rozwiązać.
Jeśli chcesz używać fmoda, to mam troche inne wyjście [dla starszej wersji fmoda - 3.5]. Zasysasz sobie nagłówki JEDI-SDL [poszukaj na googlach], rozpakowujesz gdzies, w opcjach kompilatora musisz ustawic gdzie masz szukać unitu fmod.pas. Musisz jeszcze przekopiować sobie libfmod-3.5.so do /lib albo /usr/lib i utworzyc do niego symlinka:
ln -s libfmod-3.5.so libfmod.so
Gdybys tego nie zrobił, to fpc by płakał przy linkowaniu.

A jeśli chodzi o możliwośc zaprogramowania dźwięku, to możesz to zrobić też za pomocą SDL'a [i nie tylko dźwięku, mozna rzec, ze to taki miedzyplatformowy DirectX], ale ma on trochę mniejsze możliwości od fmoda.

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0