airsonic / airsonic

:satellite: :cloud: :notes:Airsonic, a Free and Open Source community driven media server (fork of Subsonic and Libresonic)
https://airsonic.github.io
GNU General Public License v3.0
2k stars 236 forks source link

jukebox java runtime exception #1812

Open TrueAccelerator opened 3 years ago

TrueAccelerator commented 3 years ago

Problem description

whenever I try to launch jukebox in ultrasonic it crashes. I'm using linuxserver docker container.

Logs state the following error:

2020-10-17 14:27:03.350 INFO --- o.a.p.service.JukeboxJavaService : [onSongStart] admin starting jukebox for "unlasting.flac"

Exception in thread "com.github.biconou.AudioPlayer.JavaPlayer.Tplayer" java.lang.RuntimeException: java.lang.IllegalArgumentException: Line unsupported: interface SourceDataLine supporting format PCM_SIGNED 48000.0 Hz, 24 bit, stereo, 6 bytes/frame, little-endian at com.github.biconou.AudioPlayer.JavaPlayer.lambda$play$1(JavaPlayer.java:281) at java.lang.Thread.run(Thread.java:748)

Caused by: java.lang.IllegalArgumentException: Line unsupported: interface SourceDataLine supporting format PCM_SIGNED 48000.0 Hz, 24 bit, stereo, 6 bytes/frame, little-endian at com.sun.media.sound.PortMixer.getLine(PortMixer.java:137) at com.github.biconou.AudioPlayer.SourceDataLineHolder.open(SourceDataLineHolder.java:66) at com.github.biconou.AudioPlayer.JavaPlayer.pickADataLine(JavaPlayer.java:334) at com.github.biconou.AudioPlayer.JavaPlayer.lambda$play$1(JavaPlayer.java:226) ... 1 more

Steps to reproduce

launch a song switch to jukebox press play

System information

Additional notes

Include any extra notes here. Otherwise you may remove this section.

I created sound.properties file and linked it according to the instructions. I updated the GUID too. I am able to select the sound devices for the jukebox via web gui but regardless of which I choose the jukebox throws the error.

aeleeds commented 3 years ago

I have the same error, same circumstances. Playing mp3 files, web client, raspian, no proxy, no docker, Airsonic 10.6.2-RELEASE – May 3, 2020, Apache Tomcat/8.5.38 (Debian), java 11.0.9.1.

I wrote the sound.properties as instructed. My pi sees the DAC and and speaker-test outputs to it.

deisi commented 3 years ago

I think I have the same. Here a slightly nicer formatted version of the log:

2021-06-06 19:12:43.754  INFO --- o.a.p.service.JukeboxJavaService         : [onSongStart] malte starting jukebox for "c’t uplink/podcast_25688_c_t_uplink_episode_464128_tools_fur_virtuelle_treffen_linux_notebook_datenschutz_bei_e_mails_c_t_uplink_38_.mp3"
2021-06-06 19:12:43.839  WARN --- c.g.b.AudioPlayer.JavaPlayer             : No line available for audio stream with format PCM_SIGNED 44100.0 Hz, 16 bit, stereo, 4 bytes/frame, little-endian
2021-06-06 19:12:43.839  WARN --- c.g.b.AudioPlayer.JavaPlayer             : Try to convert to PCM_SIGNED 44100.0 Hz, 16 bit, stereo, 4 bytes/frame, little-endian
Exception in thread "com.github.biconou.AudioPlayer.JavaPlayer.Tplayer" java.lang.RuntimeException: java.lang.RuntimeException: javax.sound.sampled.LineUnavailableException
    at com.github.biconou.AudioPlayer.JavaPlayer.lambda$play$1(JavaPlayer.java:281)
    at java.lang.Thread.run(Thread.java:748)
Caused by: java.lang.RuntimeException: javax.sound.sampled.LineUnavailableException
    at com.github.biconou.AudioPlayer.JavaPlayer.lambda$play$1(JavaPlayer.java:234)
    ... 1 more
Caused by: javax.sound.sampled.LineUnavailableException
    at org.classpath.icedtea.pulseaudio.PulseAudioMixer.openImpl(PulseAudioMixer.java:714)
    at org.classpath.icedtea.pulseaudio.PulseAudioMixer.openLocal(PulseAudioMixer.java:588)
    at org.classpath.icedtea.pulseaudio.PulseAudioMixer.openLocal(PulseAudioMixer.java:584)
    at org.classpath.icedtea.pulseaudio.PulseAudioMixer.open(PulseAudioMixer.java:579)
    at org.classpath.icedtea.pulseaudio.PulseAudioDataLine.open(PulseAudioDataLine.java:94)
    at org.classpath.icedtea.pulseaudio.PulseAudioSourceDataLine.open(PulseAudioSourceDataLine.java:75)
    at org.classpath.icedtea.pulseaudio.PulseAudioSourceDataLine.open(PulseAudioSourceDataLine.java:90)
    at com.github.biconou.AudioPlayer.SourceDataLineHolder.open(SourceDataLineHolder.java:70)
    at com.github.biconou.AudioPlayer.JavaPlayer.pickADataLine(JavaPlayer.java:334)
    at com.github.biconou.AudioPlayer.JavaPlayer.lambda$play$1(JavaPlayer.java:232)
    ... 1 more

The jukebox works after a fresh start, but after pause and play, it stops working.