Elisa and bluetooth headset

Hi everyone! I’m trying to set up an application to browse my music library without looking like a caveman manually opening files from my file explorer, and as a KDE user the natural choice seems Elisa. However, upon trying it I found out it outputs sound through my laptop’s speakers even when a bluetooth headset is connected.

Just to be clear, bluetooth on my system is correctly working and set up. If I open my file with mpv, sound goes to my earbud. But if I do it in Elisa, my speakers start to play instead.

For further context, I’m running Wayland Plasma on an Arch Linux system.

Does anybody know in which direction I should look to address the issue? Thanks!

Check out your Audio Volume widget. Try the “Play all audio through this device” item in the three-dot menu for the desired playback device, or else drag Elisa’s icon on the Applications tab over to the desired playback device.

1 Like

Ok, there’s definitely something wrong. Clicking on the “Play all audio through this device” option does nothing (The selection dot even stays on the previous option like I didn’t do anything at all) and Elisa does not appear in the “Application” tab of my volume control widget. Am I missing some package? Or do I have one too many that conflict, maybe?

These are the ones I get querying alsa, pipewire, pulseaudio, jack.

alsa-card-profiles alsa-lib alsa-plugins alsa-topology-conf alsa-ucm-conf kpipewire lib32-alsa-lib lib32-alsa-plugins lib32-libpipewire lib32-pipewire libpipewire libwireplumber pipewire pipewire-audio pipewire-jack pipewire-pulse pipewire-session-manager plasma-pa pulseaudio-qt vlc-plugin-alsa wireplumber

Wireplumber is a replacement for pipewire-session-manager. Perhaps your distro rolls out both, but it’s a bit odd. They won’t play nicely together if both are running, but it wp is running and pipewire-session-manager is not, that’s fine.

What you’re describing sounds like pipewire is unresponsive, which is pretty unlikely if the headset works with MPV.Seems a bit odd.
Anyway, check out the logs: journalctl --user -u pipewire. Add -f to the end, to follow updates to it in real-time. -u pipewire-pulse might also be interesting.

I’m pretty sure it’s possible to configure mpv such that it will break pipewire (steals the device out from under it if you use alsa and specify the wrong device), and even if it’s not, it might not be configured to act anything like elisa, so it might not be the best comparison. Perhaps just try after a fresh reboot, playing a video in your browser, and some music from elisa, through the speakers, simultaneously, then connect the headphones, so the sound from both apps should switch to them… follow the logs as above, and see what happens.

You might like to watch in qpwgraph, so you can visualise whatever happens in pipewire/pulse, if it isn’t putting errors in the logs (which I expect it will from your description). If you’re not sure what you’re seeing you can paste the screenshots and logs here. Don’t forget to reboot before testing again, if it breaks, so that everything gets a clean start, or it’ll spoil your tests.

That’s a lot of text to explain it, but it’s not that complex, just play some stuff and read stuff :slight_smile: Good luck!

1 Like

Thanks for your reply! It’s odd, but my distro has wireplumber as a requirement for pipewire-session-manager.

Anyways, the test gave me no problem, and I’m a bit dumb as there’s no selection dot next to the “Play all audio through this device”, I thought I saw an empty one due to outside reflection on my dimmed screen and dark colour scheme. That is just a clickable command, basically.

I was about to pass through more in-depth tests like the ones you suggested above, but the actual solution came from another direction: I made a parallel tentative on my distro’s forum, in the hypothesis this was an issue that could be solved on that part, and that was a right assumption: I was missing a package.

I did not know elisa used vlc as backend and, since I do not have vlc installed on my system, I didn’t have a necessary plugin to get it working with pulseaudio: vlc-plugin-pulse. Installing that did the trick.

I’m still having problems with gapless playback, and I don’t know whether it is possible to display embedded lyrics (through extended tags), which are essential features for me. I’ll open separate topics for those. Or is it better if I ask about them under here?

The problem you had was this one. I thought it was using the alsa driver.

That’s why I told you this:

The answer did come from my post, and the lack of a failure in the test was the indication :slight_smile:

@HisDudeness

Why did you mark your post as the one with the solution? It looks to me that @pallaswept in post 4 gave you the answer, so it is better to mark that post so others who come here with a similar problem see what the answer is.

Or am I totally wrong here?

1 Like

Ehr… no, actually, mpv is completely stock, not configured to behave in any particular way, unless I’m misunderstanding. Anyway, as I stated, everything, including native games, wine games, browser video and any command playing audio correctly used bluetooth, even after a fresh reboot. The only exception was elisa, whether used together with another application, after another application, or as the first thing to play anything after a reboot. And that is because I was missing a package in my system, the vlc plugin for pulseaudio. So, what solved the issue was the solution that came from another source and that I reported here in my comment, that’s why I marked my comment as the solution. That is, installing the package vlc-plugin-pulse.

That said, I get no advantage marking my own comment as the solution, and it costs me nothing to mark another comment as such if you think that is the case. I just thought it would be correct to highlight what effectively solved my problem, just in case anybody else would have my same problem in the future (for how unlikely that might be). If I’m misunderstanding the sense of the aforementioned answer, ELI5 and be patient with me, English is not my native language. Thanks!

Er, yes actually. It doesn’t matter which one player it was. The point was that it was a player using an alsa backend that was stealing the device and breaking pipewire.

That’s me finding the solution right there. It’s not a debate, and it doesn’t matter where you put the tick, that is what that is.
Something you surely don’t understand about this answer: the “choose the wrong device” part. If you choose the right device you’ll get the virtual alsa device presented by pipewire and everything will still work. If you choose the actual hardware, you’ll steal it from pipewire. So it can still work, even without the vlc backend you said is the answer.

I know you’ve only just learned from me that mpv had an alsa backend, and subsequently to that, that you also have one on elisa, but guess what? Lots of apps have alsa backends, and all of them will do the same thing as what elisa was doing on your system.

That’s why I gave you that test with the browser. It’s very uncommon to compile the browser without pulseaudio support. If that didn’t work, we’d have been using wget to grab a wav from archive.org and play it back with pw-cat. Because we needed one client we could rely upon using pipewire, so we could make the other one kill it, and then we’d know the other one was our problem app.

There are layers of complexity in this that I am sparing us both my writing them down. I could have written a novel and hurt my hands explaining the inner workings of every player and the nature of a process of elimination test and what it was that you described that made me suspect all this, or just given you a quick explanation and a quick test you mightn’t understand, but would get the job done. I took the second option because it’s just easier for us both. Except the part where I do 99% of the work and get zero credit, and you leave a misleading explanation of something you don’t understand, for future travellers.

But because I chose mpv as my “one out of 100 apps that could do this” example, you’ve taken the example literally like it’s the only suggestion I had, and don’t quite understand what it was that I just did for you.