Hallo miteinander Ich habe ein Buffer mit Mp3 daten und möchte ihn unter Linux (Ubuntu) direkt an die Soundkarte des PC ausgeben und abspielen. Weiss jemand wie das geht? Gibt es schon vordefinierte Funktionen für so etwas?
Ich geh erstmal davon aus, dass du dein MP3 erst dekodieren willst, bevor das an die Soundkarte geht, sonst wird sich das recht seltsam anhören... Wenns komplett innerhalb deines Programms ablaufen soll, nimm eine entsprechende Decoder-Library, z.B. libmad, xine-lib, etc. Wenns auch über ein externes Programm laufen darf (VIEL einfacher zu implementieren!), nimm z.B "mpg321". Mit der Kommandozeilenoption "-" aufgerufen, spielt das MP3-Daten von STDIN ab. in perl würd das in etwa so aussehen:
1 | open(MP3HANDLE,'|/usr/bin/mpg321 -'); |
2 | while (buffer_hat_daten) { |
3 | print MP3HANDLE $stueck_vom_buffer; |
4 | } |
5 | close(MP3HANDLE); |
In reinem C wirds etwas schwieriger, mit "dup","pipe", etc filehandle für STDIN erzeugen, fork(), exec "mpg321" im Child, im Parent Daten schreiben auf den Filehandle...
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.