Hallo,
ich habe Lazarus 4.2 und FPC 3.2.2 unter Windows 11.
Nun würde ich gerne mp3-Files abspielen.
Es gibt in Lazarus aber keine Komponente Mediaplayer (warum nicht)?
Da muss man wohl selber eine Kompontet einbinden.
Zu welcher Komponete würdet Ihr mir raten?
Am besten so wie in Delphi.
Wo laden ich die Komponete runter und wie binde ich sie ein?.
Danke für Eure Tipps.
Schönes Wochenende und Gruß
Jürgen
[gelöst] Mediaplayer einbinden
- juelin
- Beiträge: 323
- Registriert: Sa 24. Jul 2021, 18:03
- OS, Lazarus, FPC: Linux Ubuntu 22. Windows 10 Delphi 11.3 (L 0.9.xy FPC 2.2.z)
- CPU-Target: 64Bit
- Wohnort: Mannheim
[gelöst] Mediaplayer einbinden
Zuletzt geändert von juelin am Sa 4. Okt 2025, 19:59, insgesamt 1-mal geändert.
Re: Mediaplayer einbinden
Hier gibt es eine Auswahl: https://wiki.freepascal.org/Audio_libraries
Ich benutze BASS.
Ich benutze BASS.
-
- Beiträge: 7056
- Registriert: Do 2. Jan 2014, 17:21
- OS, Lazarus, FPC: Linux (die neusten Trunk)
- CPU-Target: 64Bit
- Wohnort: Schweiz
Re: [gelöst] Mediaplayer einbinden
Wen du nur einfach eine mp3 abspielen willst, kannst du SDL 1.x nehmen, welches bei Lazarus schon dabei ist.Nun würde ich gerne mp3-Files abspielen.
Und wen es recht anspruchsvoll sein soll, würde ich gstreamer nehmen.
Unter Linux laufen diese Player alle auf anhieb, auf Windows muss man leider die benötigten DLLs zusammensuchen.
Das ist bei Theos Vorschlag leider auch so.
Oder wen es wirklich ganz einfach sein soll und nur unter Windows gehen soll , dann binde die mciSendStringA von der WinAPI ein.
Ich habe da ein kleine C-Beispiel, welches sich sehr einfach umsetzen lässt.
Code: Alles auswählen
// x86_64-w64-mingw32-gcc -o main main.c -lwinmm
#include <windows.h>
#include <mmsystem.h>
#include <stdio.h>
int main() {
const char* mp3File = "test.mp3";
mciSendStringA("close mp3", NULL, 0, NULL);
char command[256];
sprintf(command, "open \"%s\" type mpegvideo alias mp3", "test.mp3");
mciSendStringA(command, NULL, 0, NULL);
mciSendStringA("play mp3", NULL, 0, NULL);
printf("<Enter> = Beenden...\n");
getchar();
mciSendStringA("close mp3", NULL, 0, NULL);
return 0;
}
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot
Mit Java und C/C++ sehe ich rot
-
- Beiträge: 7056
- Registriert: Do 2. Jan 2014, 17:21
- OS, Lazarus, FPC: Linux (die neusten Trunk)
- CPU-Target: 64Bit
- Wohnort: Schweiz
Re: [gelöst] Mediaplayer einbinden
In Pascal sieht dies so aus:
Code: Alles auswählen
uses
Windows,
SysUtils;
function mciSendStringA(lpstrCommand: pansichar; lpstrReturnString: pansichar; uReturnLength: UINT; hwndCallback: HWND): cardinal; stdcall; external 'winmm.dll';
var
command: ansistring;
begin
mciSendStringA('close mp3', nil, 0, 0);
command := 'open "test.mp3" type mpegvideo alias mp3';
mciSendStringA(pansichar(command), nil, 0, 0);
mciSendStringA('play mp3', nil, 0, 0);
WriteLn('<Enter> = Beenden...');
ReadLn;
mciSendStringA('close mp3', nil, 0, 0);
end.
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot
Mit Java und C/C++ sehe ich rot