
- Ensure that no memory is used by audio processors that are always inactive, by only allocating in flush() if active. If data was already allocated but a processor becomes inactive we assume that the allocation may be needed in future so do not remove it (e.g., in the case of ResamplingAudioProcessor). - Make SilenceSkippingAudioProcessor set up its buffers in flush(), and clarify that it is always necessary to call flush() if configure() returns true. - Make reset() reset all state for all processors. - Use @Nullable state or empty arrays for inactive audio processor buffers. - Miscellaneous style/consistency cleanup. ------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED_REVID=190895783
ExoPlayer GVR extension
The GVR extension wraps the Google VR SDK for Android. It provides a GvrAudioProcessor, which uses GvrAudioSurround to provide binaural rendering of surround sound and ambisonic soundfields.
Getting the extension
The easiest way to use the extension is to add it as a gradle dependency:
implementation 'com.google.android.exoplayer:extension-gvr:2.X.X'
where 2.X.X
is the version, which must match the version of the ExoPlayer
library being used.
Alternatively, you can clone the ExoPlayer repository and depend on the module locally. Instructions for doing this can be found in ExoPlayer's top level README.
Using the extension
- If using
DefaultRenderersFactory
, overrideDefaultRenderersFactory.buildAudioProcessors
to return aGvrAudioProcessor
. - If constructing renderers directly, pass a
GvrAudioProcessor
toMediaCodecAudioRenderer
's constructor.
Links
- Javadoc: Classes matching
com.google.android.exoplayer2.ext.gvr.*
belong to this module.