Jump to content

MP3s don't play in App but do in Browser


snoopy1978
Go to solution Solved by snoopy1978,

Recommended Posts

snoopy1978

Hi everybody,

 

when I try to play a music album of MP3 files with the Android App it doesn't work... The App simply skips over all album entrys and doesnt't play any file. It doesn't matter which MP3 I choose, it doesn't play and doesn't give an error message.

When I enter the emby Server in Chrome on the same Android Device the same MP3s play without problems.

 

What could be the problem with the app here?

 

Server Version: 4.1.1.0

Android App Version: 3.0.68 (latest available in Play Store)

 

Thx in advance!

Snoopy

Link to comment
Share on other sites

Hi, what device and version of android? mp3's seem to be playing back OK here on my test devices. thanks.

Link to comment
Share on other sites

snoopy1978

It's a Samsung Galaxy S9, Stock Android 9.0 accessing the Server over the Internet (App and Browser, identical address)

Link to comment
Share on other sites

snoopy1978

Seems the problem has something to do with the connection from outside ... when I use VPN to connect to my Home Network from outside and in the App I configure a Server with the LAN IP and HTTP Port, MP3s are played in the app....

 

But I don't understand why the app can connect to the Emby Server with the public Address, I can browse the content but it doesn't play it, whereas in Chrome using the same public address everything works fine...

Link to comment
Share on other sites

snoopy1978

When I try to play videos the problem is the same ... The App refuses to start playing, after hitting the "play" button the circle loops endlessly, but in Chrome it works...

Link to comment
Share on other sites

But I don't understand why the app can connect to the Emby Server with the public Address, I can browse the content but it doesn't play it, whereas in Chrome using the same public address everything works fine...

 

The audio and video player has it's own layer of connectivity so that might be why. Is this an https url? it could be that it doesn't like the certificate.

Link to comment
Share on other sites

snoopy1978

Yes, it's a https connection with a valid Let's encrypt certificate, so it should be accepted ... and testet with public non-ssl plain HTTP, the problem remains

Edited by snoopy1978
Link to comment
Share on other sites

  • Solution
snoopy1978

I adb logcat'ed the Android Device on my laptop and found out sth. interesting:

 

I assume this is the cause of the behaviour:

08-01 21:21:11.601 30770  1320 V mpv     : [ffmpeg:warn] https: HTTP error 404 Not Found
08-01 21:21:11.601 30770  1320 V mpv     : [stream:error] Failed to open https://my.external.domain:443/emby/Audio/28413/universal?UserId=f344233b8d6d499c82860e1360457800&DeviceId=f0c018d33273472f&MaxStreamingBitrate=6720000&TranscodingContainer=ts&TranscodingProtocol=hls&AudioCodec=aac&api_key=eae121217c3b4a13864d474e6f3aa64b&PlaySessionId=1564686082598&StartTimeTicks=0&EnableRedirection=true&EnableRemoteMedia=false.
08-01 21:21:11.602 30770  1320 V mpv     : [cplayer:v] Opening failed or was aborted: https://my.external.domain:443/emby/Audio/28413/universal?UserId=f344233b8d6d499c82860e1360457800&DeviceId=f0c018d33273472f&MaxStreamingBitrate=6720000&TranscodingContainer=ts&TranscodingProtocol=hls&AudioCodec=aac&api_key=eae121217c3b4a13864d474e6f3aa64b&PlaySessionId=1564686082598&StartTimeTicks=0&EnableRedirection=true&EnableRemoteMedia=false

Am I right that at this point the app tries to load the stream? Notice the "4040 Not Found". But what is strange... when I copy the URL in Chrome at the Device, it works, the stream gets played...
 

Edited by snoopy1978
  • Like 1
Link to comment
Share on other sites

snoopy1978

The logcat indeed pushed me to the right direction, I found the solution...

 

As reverse proxy I use HA-Proxy and as I have a few different services on different backend servers I use a ruleset to direct the requests to the right backend depending on the hostname in the request. The rule for "my.external.domain" was "hostname is exactly my.external.domain". As Chrome and obviously the app concerning the login and gui things ommit the (standard https-)port 443 in the request ("https://my.external.domain/...")the rule matches and directed the request to the correct emby backend server.

But ffmpeg - as can be seen in the logcat output - adds the port to the request ("https://my.external.domain:443/...")so the HA-proxy rule didn't match and the request was routed to a completely wrong backend server which of course answered the 404.

 

After editing the HA-proxy rule to "hostname starts with my.external.domain" everything works fine in the app now.

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...