-
-
Notifications
You must be signed in to change notification settings - Fork 2.9k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[BUG]: (Android) HLS in background stops and shows buffering animation forever in example/basic app on physical devices #4039
Comments
Similar issue on ios, but issue appears even on foreground |
With a stream that had DVR off, I unfortunately reproduced this issue. The playable duration sometimes does not update and the notification shows the buffering icon animation continually - and to resume the player one must foreground and or get the player to pause/play, skip forward, or skip backward. |
@paulrinaldi is possible to reproduce this issue on emulator? I don't have physical android 14 :/ |
I haven't been able to reproduce this on an emulator. |
So this can be related to codec (as it is working on simulator) 🤔 |
As open source developers, you can get free use of physical mobile devices. Scroll to the bottom of: I use browserstack and it works fairly well. |
Here are the codecs on the m3u8 file stream we have:
Extracted out I see:
=> Video Codecs:
Audio Codec:
|
The red bull HLS m3u8 file has no codecs declared in it: https://rbmn-live.akamaized.net/hls/live/590964/BoRB-AT/master_928.m3u8 So that is a stark difference (ah and thus it has I still do not understand how codecs might be the problem here even if they are a big difference since (1) I don't see an "unsupported" error when using the democracy now m3u8 (https://democracynow-hls.secdn.net/democracynow-live/play/democracynow.smil/playlist.m3u8) and (2) codecs describe the compression and decompression algorithm for the AV. I suppose RNV could handle these codecs improperly. This same stream used to work fine in v5.2 RNV. I will use logcat on my physical device to see what else I can learn about the playable duration (from onProgress event) when in background vs foreground and anything else that pops out to me. If you have any suggestions, please feel free to mention them. Just tested what I believe is my non-DVR HLS, and I saw correct buffering in the background in my app (only problem is if I fast forwarded to the tip of the progress bar and the bar player then pauses - this could be due to my code will check). Will keep testing, perhaps it's just a problem with my DVR HLS. |
Tracing code more today. |
Also, I have not seen this issue on iOS. |
This issue does not occur in browserstack, only on physical devices (tested on Pixel 6a and Samsung S21 5G. The issue still occurs in non-DVR streams, so this is an HLS issue. I wonder where the issue lies. This all used to work in 5.2.0. |
Built a pure new android kotlin project with exoplayer 1.4.0 and got background audio stable with my DVR and nonDVR version HTTPS livestream. So there is a bug likely in RNV. Working to find it now. I appreciate any help. I do some unstable api's in use. |
This issue is stale because it has been open for 30 days with no activity. If there won't be any activity in the next 14 days, this issue will be closed automatically. |
Bump |
Fixed in latest release - 0820f81 6.6.4 |
Version
^6.2.4
What platforms are you having the problem on?
Android
System Version
14
On what device are you experiencing the issue?
Real device
Architecture
Old architecture
What happened?
Using an HLS livestream such as this Democracy Now DVR stream (available from 8-9am United States Eastern Time) or
this DVR FPV Drone stream (always available) in the
example/basic
app on a physical device does not play properly in the background.Reproduction
https://github.com/paulrinaldi/react-native-video/tree/master
Actual:
7. Observe no AV and the buffering animation continue nonstop*
Desired:
7. Observe the playable duration increase and the progress bar's ticker move backward slightly because the new buffered section loaded in the progress bar and no interruption in the audio while backgrounded.
OR
Add either or both of these entries to
examples/basic/src/constants/general.ts
this DVR HLS:Actual:
Desired:
7. Observe the playable duration increase and the progress bar's ticker move backward slightly because the new buffered section loaded in the progress bar and no interruption in the audio while backgrounded.
Other notes:
In Browserstack, this cannot be reproduced, this is potentially because the browserstack devices are of very high quality and low wear and tear unlike phones that actual owners have when they use our apps.
*(the only way to resume is to foreground the app and wait like 10s, rewind the player via notif controls, rewind the player via player controls in foreground, seek forward the player via notif controls, seek forward the player via player controls in foreground, or foreground the app then pause then play the player - sometimes neither of these options resume the player)
The text was updated successfully, but these errors were encountered: