Limited Interface + Controls when casting to WiFi/UPnP Speaker

Issue description:

Currently visiting some friends who have a WiFi Speaker/Radio (Teufel One S). I was pleasantly surprised that Symfonium was able to cast songs to it, when even Youtube Music couldn’t do it. The speaker seems to natively support Spotify and works best in combination with the Spotify app.

(Edit: Yatse showed that the speaker is using UPnP, which wasn’t obvious to me before. Chaning the two UPnP-related settings in Advanced Settings didn’t change any of the reported behavior though, even after a restart of the app.)

Aside from starting playback of a track, Symfonium is however fairly limited when it comes to controlling playback on the speaker:

  • The progress bar shows no progress and Seeking doesn’t work
  • The Lyrics button is hidden even though lyrics are working fine when playing back locally
  • The Pause button doesn’t work; playback can only stopped by ending casting
  • Playback reporting started to bug out after a bit (could be due to disconnecting and reconnecting multiple times and frequently changing tracks). It did recover eventually, but wasn’t totally reliable

Things that do work well:

  • Changing tracks, auto-advance
  • Volume control
  • Connecting to / Disconnecting from the speaker

Logs:

debug-20220916_122320.zip (38.9 KB)

Screenshots:

Lyrics button is hidden and progess back is not showing any progress:

Additional Information

Given that I don’t own this speakee myself I might not be able to test fixes, but I’d assume that this issue isn’t specific to this speaker.
And as long as playback works (which it does) I’m pretty happy anyway. Just thought I let you know about the issue :slight_smile:

The device seems to have a really bad UPnP implementation

{faultcode=s:Client, faultstring=UPnPError, UPnPError/errorCode=501, UPnPError/errorDescription=Action Pause is not supported}
{TrackDuration=NOT_IMPLEMENTED, RelTime=NOT_IMPLEMENTED}

Not much I can do here it’s not a real UPnP device, it’s pure luck that it support the play :slight_smile:

2 Likes

Okay, that makes sense. Probably some bullshit deal with Spotify to push their proprietary protocol onto consumers…

Although, could you please make it so the lyrics button is shown? I know synced lRics can’t be shown if progress reporting isn’t implemented by the UPnP receiver, but maybe it would be possible to just show the lyrics without syncing?
Either grayed-out as if playback was at 0 seconds, or maybe even fall back to the way unsynced lyrics ate shown?
That would be awesome!

If the server does not return the lyrics then no I can’t display lyrics when casting, as it’s the local player that extract the data from the audio.

Ahh so the app never receives the audio file when casting, only metadata? Fair enough!

I’m seeing a very similar issue on bubbleupnp, except it’s only seeking that is the issue. This also only happens when I enable gapless playback on bubbleupnp. Is this still the fault of the device/software? I only ask here first because I am able to seek through HomeAssistant when music is playing from symfonium, but not through the app. If so do you happen to have a suggestion for an andriod upnp server that would work best? I’m just looking to cast gapless lossless content. Thanks!

Relavent logs:

<?xml version="1.0" encoding="utf-8" standalone="yes"?>s:ClientUPnPError710The specified seek mode is not supported by the device. Unsupported seek mode: REL_TIME.

2023-05-19 17:13:46.214 Verbose/UPnP: action result:
{faultcode=s:Client, faultstring=UPnPError, UPnPError/errorCode=710, UPnPError/errorDescription=The specified seek mode is not supported by the device. Unsupported seek mode: REL_TIME.}
2023-05-19 17:13:46.214 Error/UPnPRenderer: Error: error response: {faultcode=s:Client, faultstring=UPnPError, UPnPError/errorCode=710, UPnPError/errorDescription=The specified seek mode is not supported by the device. Unsupported seek mode: REL_TIME.}
2023-05-19 17:13:46.214 Error/UPnPRenderer: Action not found for Seek

debug-20230519_171352.zip (7.8 KB)

Open your own issue with the proper template.

For the seek this is your device being dumb.
It says:
2023-05-19 17:13:47.171 Verbose/UPnPRenderer: Supported SeekMode: TRACK_NR
2023-05-19 17:13:47.171 Verbose/UPnPRenderer: Supported SeekMode: ABS_TIME
2023-05-19 17:13:47.172 Verbose/UPnPRenderer: Supported SeekMode: REL_TIME
2023-05-19 17:13:47.172 Verbose/UPnPRenderer: Supported SeekMode: ABS_COUNT
2023-05-19 17:13:47.172 Verbose/UPnPRenderer: Supported SeekMode: REL_COUNT
2023-05-19 17:13:47.172 Verbose/UPnPRenderer: Supported SeekMode: CHANNEL_FREQ
2023-05-19 17:13:47.172 Verbose/UPnPRenderer: Supported SeekMode: TAPE-INDEX
2023-05-19 17:13:47.172 Verbose/UPnPRenderer: Supported SeekMode: FRAME

So supporting REL_TIME but then says not supported when using it …