-
Notifications
You must be signed in to change notification settings - Fork 6k
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
NetworkTypeObserver doesn't update it's initial value after creation #10970
Comments
Thanks for reporting! It looks like this is caused by the newly added However, as far as I can see, this shouldn't be needed because callbacks from the system never require |
Protected system broadcasts should not specify the export flag. Marking them as NOT_EXPORTED breaks sticky broadcasts in some cases. Issue: #10970 #minor-release PiperOrigin-RevId: 512020154
Protected system broadcasts should not specify the export flag. Marking them as NOT_EXPORTED breaks sticky broadcasts in some cases. Issue: google/ExoPlayer#10970 #minor-release PiperOrigin-RevId: 512020154
Protected system broadcasts should not specify the export flag. Marking them as NOT_EXPORTED breaks sticky broadcasts in some cases. Issue: google/ExoPlayer#10970 PiperOrigin-RevId: 512020154 (cherry picked from commit 93e1179)
ExoPlayer Version
2.18.2
Devices that reproduce the issue
Pixel 6 running Android 13
Devices that do not reproduce the issue
No response
Reproducible in the demo app?
No
Reproduction steps
Can't find a real auto-quality dash-vp9 video in demo app - it always asks to choose quality before playback start.
The issue is in adaptive quality selection - due to initially low bandwidth, player choose low quality at the start of playback.
Expected result
Video starts with good quality, accordingly to actual network bandwidth.
Actual result
Video starts with bad quality, because of low initial bandwidth
I investigated the issue, and it seems like
NetworkTypeObserver#Receiver#onReceive
method doesn't get called after registering broadcast receiver (even later, 'asynchronously').Seems like
NetworkTypeObservers
' internal impl expects sticky behavior from BroadcastReceiver (so it would receive last network type after receiver registering) - but actually it doesn't work this way.Moreover, https://developer.android.com/reference/android/net/ConnectivityManager#CONNECTIVITY_ACTION is deprecated and Google advices to use
NetworkCallback
or/and direct call toConnectivityManager#requestBandwidthUpdate()
to force-receive current network state and it's bandwidth.Media
Not applicable
Bug Report
adb bugreport
to dev.exoplayer@gmail.com after filing this issue.The text was updated successfully, but these errors were encountered: