mirror of
https://github.com/androidx/media.git
synced 2025-05-07 15:40:37 +08:00
Copy edit async buffer queueing documentation
PiperOrigin-RevId: 436176051
This commit is contained in:
parent
ea470893cd
commit
c8e8bb14d6
@ -209,18 +209,15 @@ described for customizing extractor flags above.
|
||||
|
||||
### Enabling asynchronous buffer queueing ###
|
||||
|
||||
Asynchronous buffer queueing is an enhancement in ExoPlayer's rendering pipeline
|
||||
that improves dropped frames and audio underruns. With asynchronous buffer
|
||||
queueing, the player is operating the platform's `MediaCodec` in [asynchronous
|
||||
mode][], thus the feature is applicable when content is decoded using the
|
||||
platform decoders. The player also utilizes additional threads for scheduling
|
||||
decoding and rendering of data.
|
||||
Asynchronous buffer queueing is an enhancement in ExoPlayer's rendering
|
||||
pipeline, which operates `MediaCodec` instances in [asynchronous mode][] and
|
||||
uses additional threads to schedule decoding and rendering of data. Enabling it
|
||||
can reduce dropped frames and audio underruns.
|
||||
|
||||
The feature is enabled by default on devices with Android 12 onwards and you can
|
||||
also enable it in your app for other devices too. For example, consider enabling
|
||||
asynchronous buffer queueing if you observe dropped frames or audio underruns on
|
||||
specific devices, particularly with Widevine-protected or high frame-rate
|
||||
content.
|
||||
Asynchronous buffer queueing is enabled by default on devices running Android 12
|
||||
and above, and can be enabled manually from Android 6. Consider enabling the
|
||||
feature for specific devices on which you observe dropped frames or audio
|
||||
underruns, particularly when playing DRM protected or high frame rate content.
|
||||
|
||||
In the simplest case, you need to inject a `DefaultRenderersFactory` to the
|
||||
player as follows:
|
||||
@ -233,10 +230,9 @@ ExoPlayer exoPlayer = new ExoPlayer.Builder(context, renderersFactory).build();
|
||||
~~~
|
||||
{: .language-java}
|
||||
|
||||
If however in your app you are instantiating the player with custom renderers,
|
||||
then make sure to create the `MediaCodecVideoRenderer` and
|
||||
`MediaCodecAudioRenderer` instances passing an
|
||||
`AsynchronousMediaCodecAdapter.Factory` to their constructor.
|
||||
If you're instantiating renderers directly, pass a
|
||||
`AsynchronousMediaCodecAdapter.Factory` to the `MediaCodecVideoRenderer` and
|
||||
`MediaCodecAudioRenderer` constructors.
|
||||
|
||||
## MediaSource customization ##
|
||||
|
||||
|
@ -101,9 +101,9 @@ MediaSource.Factory mediaSourceFactory =
|
||||
|
||||
### Improving playback performance ###
|
||||
|
||||
If you're experiencing video stuttering (dropped frames and/or audio underruns)
|
||||
with Widevide-protected content on a device with Android version prior to 12,
|
||||
you can try [enabling asynchronous buffer queueing].
|
||||
If you're experiencing video stuttering on a device running Android 6 to 11 when
|
||||
playing DRM protected content, you can try [enabling asynchronous buffer
|
||||
queueing].
|
||||
|
||||
[main demo app]: {{ site.release_v2 }}/demos/main
|
||||
[`MediaDrm`]: {{ site.android_sdk }}/android/media/MediaDrm.html
|
||||
|
@ -296,13 +296,12 @@ is the official way to play YouTube videos on Android.
|
||||
|
||||
#### Video playback is stuttering ###
|
||||
|
||||
The device on which you're observing this may not be able to decode the content
|
||||
fast enough if, for example, the content bitrate or resolution exceeds the
|
||||
device capabilities. You may need to use lower quality content to obtain good
|
||||
performance on such devices.
|
||||
The device may not be able to decode the content fast enough if, for example,
|
||||
the content bitrate or resolution exceeds the device capabilities. You may need
|
||||
to use lower quality content to obtain good performance on such devices.
|
||||
|
||||
If you're experiencing this on a device with Android version prior to 12,
|
||||
particularly with Widevine-protected or high frame-rate content, you can try
|
||||
If you're experiencing video stuttering on a device running Android 6 to 11,
|
||||
particularly when playing DRM protected or high frame rate content, you can try
|
||||
[enabling asynchronous buffer queueing].
|
||||
|
||||
[Fixing "Cleartext HTTP traffic not permitted" errors]: #fixing-cleartext-http-traffic-not-permitted-errors
|
||||
|
Loading…
x
Reference in New Issue
Block a user