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