Linux: Audio-Output

Übersicht BlitzMax, BlitzMax NG Allgemein

Neue Antwort erstellen

BlitzMoritz

Betreff: Linux: Audio-Output

BeitragMo, Dez 15, 2008 22:30
Antworten mit Zitat
Benutzer-Profile anzeigen
...mal wieder ein Problem, das nur unter Linux (ubuntu 7.10) auftritt: Rolling Eyes
Einerseits ist es z.B. möglich, mit VLC mehrere Mediendateien gleichzeitig zu starten - bei beiden hört man den Ton.
Andererseits scheint der Audio-Output sofort belegt zu sein, sobald ein BlitzMax-Programm ins Spiel kommt, in dem Sounds geladen und abgespielt werden.
Startet man ein solches BM-Programm, kann man hernach nichts mehr im VLC hören (Sound fehlt)
Startet man umgekehrt erst VLC, bleibt das BM-Programm stumm.
Unter Windows tritt dieses Phänomen gar nicht auf, MacOS scheint "irritiert" zu sein, lässt aber zumindest beides erklingen.
Weiß jemand eine Code-Lösung dieses Linux-Problems?

FOODy

BeitragMo, Dez 15, 2008 22:42
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi BlitzMoritz.
Es wird wohl an OSS liegen, welches BlitzMax zurzeit standardmäßig verwendet.
( http://de.wikipedia.org/wiki/Open_Sound_System )

Dieser Thread könnte dir evtl. weiter helfen:
http://blitzbasic.com/Communit...589#907695


Grüße,
FOODy
BlitzMax + MaxGUI, 64-bit Arch Linux: Intel Core² E8500 | 8 GB Ram | GeForce GTX 460 · 1024 MB

BlitzMoritz

BeitragDi, Dez 16, 2008 21:42
Antworten mit Zitat
Benutzer-Profile anzeigen
Vielen Dank, Foody, für die interessanten Links.
Die exakten Meldungen der BM-Konsole scheinen deine Vermutung zu bestätigen, dass OSS für die Probleme verantwortlich ist:
Zitat:
VLC media player 0.8.6c Janus
ALSA lib pcm_dmix.c:864:(snd_pcm_dmix_open) unable to open slave
[00000358] oss audio output error: cannot open audio device (/dev/dsp)
ALSA lib pcm_dmix.c:864:(snd_pcm_dmix_open) unable to open slave
[00000358] esd audio output error: cannot open esound socket (format 0x00001021 at 44100 Hz)
[00000282] main playlist: stopping playback

Wie man's im BM-Code beheben kann, hab' ich leider noch nicht herausbekommen... Sad

Edit:
Hab' ne etwas brachiale Lösung gefunden, allerdings genügt sie meinem speziellen Zweck: Ich initialisiere einfach noch einmal den Audio-Treiber, bevor ich das externe Programm starte:
Code: [AUSKLAPPEN]
Local Sound:TSound = LoadSound("Sounddatei")
PlaySound Ton
Delay 3000
?Linux
SetAudioDriver("FreeAudio OpenSound System") 'oder: "FreeAudio"
?
system_("vlc Mediendatei") '(mit Ton!)
'bitte VLC extern wieder schließen, ansonsten verharrt das Programm hier...
?Linux
SetAudioDriver("FreeAudio OpenSound System")
?
PlaySound Sound '(klappt immer noch)
Allerdings ist die umgekehrte Richtung (erst VLC starten, dann BM-Programm) damit noch nicht gelöst - BM bleibt trotz SetAudioDriver stumm.

BtbN

BeitragMi, Dez 17, 2008 17:06
Antworten mit Zitat
Benutzer-Profile anzeigen
Setz mal den Treiber auf OpenAL.

BlitzMoritz

BeitragMi, Dez 17, 2008 21:38
Antworten mit Zitat
Benutzer-Profile anzeigen
Tatsächlich "OpenAL"? AudioDriverExists("OpenAL") liefert mir False. Und beim String-Array, den die Function AudioDrivers() zurückgibt, wird nur "FreeAudio", "FreeAudio OpenSound System" und Null aufgelistet.

Neue Antwort erstellen


Übersicht BlitzMax, BlitzMax NG Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group