Remove references to Player(Control)View from the dev guide
Remove most of the customisation documentation, since StyledPlayerView isn't really designed to be customised as deeply as PlayerView. Also remove most documentation around StyledPlayerControlView, especially as a standalone controller class - since it doesn't work well for this use-case. #minor-release PiperOrigin-RevId: 426090762
This commit is contained in:
parent
530c868c17
commit
8aefed20f8
@ -104,20 +104,19 @@ gets from the libgav1 decoder:
|
||||
|
||||
* GL rendering using GL shader for color space conversion
|
||||
|
||||
* If you are using `ExoPlayer` with `LegacyPlayerView` or `PlayerView`,
|
||||
enable this option by setting `surface_type` of view to be
|
||||
* If you are using `ExoPlayer` with `PlayerView`, enable this option by
|
||||
setting the `surface_type` of the view to be
|
||||
`video_decoder_gl_surface_view`.
|
||||
* Otherwise, enable this option by sending `Libgav1VideoRenderer` a
|
||||
message of type `Renderer.MSG_SET_VIDEO_OUTPUT` with an instance of
|
||||
`VideoDecoderOutputBufferRenderer` as its object.
|
||||
`VideoDecoderGLSurfaceView` is the concrete
|
||||
`VideoDecoderOutputBufferRenderer` implementation used by `PlayerView`
|
||||
and `LegacyPlayerView`.
|
||||
`VideoDecoderOutputBufferRenderer` implementation used by `PlayerView`.
|
||||
|
||||
* Native rendering using `ANativeWindow`
|
||||
|
||||
* If you are using `ExoPlayer` with `LegacyPlayerView` or `PlayerView`,
|
||||
this option is enabled by default.
|
||||
* If you are using `ExoPlayer` with `PlayerView`, this option is enabled
|
||||
by default.
|
||||
* Otherwise, enable this option by sending `Libgav1VideoRenderer` a
|
||||
message of type `Renderer.MSG_SET_VIDEO_OUTPUT` with an instance of
|
||||
`SurfaceView` as its object.
|
||||
|
@ -117,20 +117,19 @@ gets from the libvpx decoder:
|
||||
|
||||
* GL rendering using GL shader for color space conversion
|
||||
|
||||
* If you are using `ExoPlayer` with `LegacyPlayerView` or `PlayerView`,
|
||||
enable this option by setting `surface_type` of view to be
|
||||
* If you are using `ExoPlayer` with `PlayerView`, enable this option by
|
||||
setting the `surface_type` of the view to be
|
||||
`video_decoder_gl_surface_view`.
|
||||
* Otherwise, enable this option by sending `LibvpxVideoRenderer` a message
|
||||
of type `Renderer.MSG_SET_VIDEO_OUTPUT` with an instance of
|
||||
`VideoDecoderOutputBufferRenderer` as its object.
|
||||
`VideoDecoderGLSurfaceView` is the concrete
|
||||
`VideoDecoderOutputBufferRenderer` implementation used by `PlayerView`
|
||||
and `LegacyPlayerView`.
|
||||
`VideoDecoderOutputBufferRenderer` implementation used by `PlayerView`.
|
||||
|
||||
* Native rendering using `ANativeWindow`
|
||||
|
||||
* If you are using `ExoPlayer` with `LegacyPlayerView` or `PlayerView`,
|
||||
this option is enabled by default.
|
||||
* If you are using `ExoPlayer` with `PlayerView`, this option is enabled
|
||||
by default.
|
||||
* Otherwise, enable this option by sending `LibvpxVideoRenderer` a message
|
||||
of type `Renderer.MSG_SET_VIDEO_OUTPUT` with an instance of
|
||||
`SurfaceView` as its object.
|
||||
|
@ -90,8 +90,7 @@ import java.util.concurrent.CopyOnWriteArrayList;
|
||||
* A view for controlling {@link Player} instances.
|
||||
*
|
||||
* <p>A StyledPlayerControlView can be customized by setting attributes (or calling corresponding
|
||||
* methods), overriding drawables, overriding the view's layout file, or by specifying a custom view
|
||||
* layout file.
|
||||
* methods), or overriding drawables.
|
||||
*
|
||||
* <h2>Attributes</h2>
|
||||
*
|
||||
@ -189,123 +188,6 @@ import java.util.concurrent.CopyOnWriteArrayList;
|
||||
* <li><b>{@code exo_styled_controls_shuffle_on}</b> - The shuffle icon when shuffling is enabled.
|
||||
* <li><b>{@code exo_styled_controls_vr}</b> - The VR icon.
|
||||
* </ul>
|
||||
*
|
||||
* <h2>Overriding the layout file</h2>
|
||||
*
|
||||
* To customize the layout of StyledPlayerControlView throughout your app, or just for certain
|
||||
* configurations, you can define {@code exo_player_control_view.xml} layout files in your
|
||||
* application {@code res/layout*} directories. But, in this case, you need to be careful since the
|
||||
* default animation implementation expects certain relative positions between children. See also <a
|
||||
* href="CustomLayout">Specifying a custom layout file</a>.
|
||||
*
|
||||
* <p>The layout files in your {@code res/layout*} will override the one provided by the library,
|
||||
* and will be inflated for use by StyledPlayerControlView. The view identifies and binds its
|
||||
* children by looking for the following ids:
|
||||
*
|
||||
* <ul>
|
||||
* <li><b>{@code exo_play_pause}</b> - The play and pause button.
|
||||
* <ul>
|
||||
* <li>Type: {@link ImageView}
|
||||
* </ul>
|
||||
* <li><b>{@code exo_rew}</b> - The rewind button.
|
||||
* <ul>
|
||||
* <li>Type: {@link View}
|
||||
* </ul>
|
||||
* <li><b>{@code exo_rew_with_amount}</b> - The rewind button with rewind amount.
|
||||
* <ul>
|
||||
* <li>Type: {@link TextView}
|
||||
* <li>Note: StyledPlayerControlView will programmatically set the text with the rewind
|
||||
* amount in seconds. Ignored if an {@code exo_rew} exists. Otherwise, it works as the
|
||||
* rewind button.
|
||||
* </ul>
|
||||
* <li><b>{@code exo_ffwd}</b> - The fast forward button.
|
||||
* <ul>
|
||||
* <li>Type: {@link View}
|
||||
* </ul>
|
||||
* <li><b>{@code exo_ffwd_with_amount}</b> - The fast forward button with fast forward amount.
|
||||
* <ul>
|
||||
* <li>Type: {@link TextView}
|
||||
* <li>Note: StyledPlayerControlView will programmatically set the text with the fast
|
||||
* forward amount in seconds. Ignored if an {@code exo_ffwd} exists. Otherwise, it works
|
||||
* as the fast forward button.
|
||||
* </ul>
|
||||
* <li><b>{@code exo_prev}</b> - The previous button.
|
||||
* <ul>
|
||||
* <li>Type: {@link View}
|
||||
* </ul>
|
||||
* <li><b>{@code exo_next}</b> - The next button.
|
||||
* <ul>
|
||||
* <li>Type: {@link View}
|
||||
* </ul>
|
||||
* <li><b>{@code exo_repeat_toggle}</b> - The repeat toggle button.
|
||||
* <ul>
|
||||
* <li>Type: {@link ImageView}
|
||||
* <li>Note: StyledPlayerControlView will programmatically set the drawable on the repeat
|
||||
* toggle button according to the player's current repeat mode. The drawables used are
|
||||
* {@code exo_styled_controls_repeat_off}, {@code exo_styled_controls_repeat_one} and
|
||||
* {@code exo_styled_controls_repeat_all}. See the section above for information on
|
||||
* overriding these drawables.
|
||||
* </ul>
|
||||
* <li><b>{@code exo_shuffle}</b> - The shuffle button.
|
||||
* <ul>
|
||||
* <li>Type: {@link ImageView}
|
||||
* <li>Note: StyledPlayerControlView will programmatically set the drawable on the shuffle
|
||||
* button according to the player's current repeat mode. The drawables used are {@code
|
||||
* exo_styled_controls_shuffle_off} and {@code exo_styled_controls_shuffle_on}. See the
|
||||
* section above for information on overriding these drawables.
|
||||
* </ul>
|
||||
* <li><b>{@code exo_vr}</b> - The VR mode button.
|
||||
* <ul>
|
||||
* <li>Type: {@link View}
|
||||
* </ul>
|
||||
* <li><b>{@code exo_subtitle}</b> - The subtitle button.
|
||||
* <ul>
|
||||
* <li>Type: {@link ImageView}
|
||||
* </ul>
|
||||
* <li><b>{@code exo_fullscreen}</b> - The fullscreen button.
|
||||
* <ul>
|
||||
* <li>Type: {@link ImageView}
|
||||
* </ul>
|
||||
* <li><b>{@code exo_minimal_fullscreen}</b> - The fullscreen button in minimal mode.
|
||||
* <ul>
|
||||
* <li>Type: {@link ImageView}
|
||||
* </ul>
|
||||
* <li><b>{@code exo_position}</b> - Text view displaying the current playback position.
|
||||
* <ul>
|
||||
* <li>Type: {@link TextView}
|
||||
* </ul>
|
||||
* <li><b>{@code exo_duration}</b> - Text view displaying the current media duration.
|
||||
* <ul>
|
||||
* <li>Type: {@link TextView}
|
||||
* </ul>
|
||||
* <li><b>{@code exo_progress_placeholder}</b> - A placeholder that's replaced with the inflated
|
||||
* {@link DefaultTimeBar}. Ignored if an {@code exo_progress} view exists.
|
||||
* <ul>
|
||||
* <li>Type: {@link View}
|
||||
* </ul>
|
||||
* <li><b>{@code exo_progress}</b> - Time bar that's updated during playback and allows seeking.
|
||||
* {@link DefaultTimeBar} attributes set on the StyledPlayerControlView will not be
|
||||
* automatically propagated through to this instance. If a view exists with this id, any
|
||||
* {@code exo_progress_placeholder} view will be ignored.
|
||||
* <ul>
|
||||
* <li>Type: {@link TimeBar}
|
||||
* </ul>
|
||||
* </ul>
|
||||
*
|
||||
* <p>All child views are optional and so can be omitted if not required, however where defined they
|
||||
* must be of the expected type.
|
||||
*
|
||||
* <h2 id="CustomLayout">Specifying a custom layout file</h2>
|
||||
*
|
||||
* Defining your own {@code exo_player_control_view.xml} is useful to customize the layout of
|
||||
* StyledPlayerControlView throughout your application. It's also possible to customize the layout
|
||||
* for a single instance in a layout file. This is achieved by setting the {@code
|
||||
* controller_layout_id} attribute on a StyledPlayerControlView. This will cause the specified
|
||||
* layout to be inflated instead of {@code exo_player_control_view.xml} for only the instance on
|
||||
* which the attribute is set.
|
||||
*
|
||||
* <p>You need to be careful when you set the {@code controller_layout_id}, because the default
|
||||
* animation implementation expects certain relative positions between children.
|
||||
*/
|
||||
@UnstableApi
|
||||
public class PlayerControlView extends FrameLayout {
|
||||
|
@ -77,9 +77,8 @@ import org.checkerframework.checker.nullness.qual.RequiresNonNull;
|
||||
* A high level view for {@link Player} media playbacks. It displays video, subtitles and album art
|
||||
* during playback, and displays playback controls using a {@link PlayerControlView}.
|
||||
*
|
||||
* <p>A PlayerView can be customized by setting attributes (or calling corresponding methods),
|
||||
* overriding drawables, overriding the view's layout file, or by specifying a custom view layout
|
||||
* file.
|
||||
* <p>A PlayerView can be customized by setting attributes (or calling corresponding methods), or
|
||||
* overriding drawables.
|
||||
*
|
||||
* <h2>Attributes</h2>
|
||||
*
|
||||
@ -178,81 +177,6 @@ import org.checkerframework.checker.nullness.qual.RequiresNonNull;
|
||||
* The drawables used by {@link PlayerControlView} (with its default layout file) can be overridden
|
||||
* by drawables with the same names defined in your application. See the {@link PlayerControlView}
|
||||
* documentation for a list of drawables that can be overridden.
|
||||
*
|
||||
* <h2>Overriding the layout file</h2>
|
||||
*
|
||||
* To customize the layout of PlayerView throughout your app, or just for certain configurations,
|
||||
* you can define {@code exo_player_view.xml} layout files in your application {@code res/layout*}
|
||||
* directories. These layouts will override the one provided by the library, and will be inflated
|
||||
* for use by PlayerView. The view identifies and binds its children by looking for the following
|
||||
* ids:
|
||||
*
|
||||
* <ul>
|
||||
* <li><b>{@code exo_content_frame}</b> - A frame whose aspect ratio is resized based on the video
|
||||
* or album art of the media being played, and the configured {@code resize_mode}. The video
|
||||
* surface view is inflated into this frame as its first child.
|
||||
* <ul>
|
||||
* <li>Type: {@link AspectRatioFrameLayout}
|
||||
* </ul>
|
||||
* <li><b>{@code exo_shutter}</b> - A view that's made visible when video should be hidden. This
|
||||
* view is typically an opaque view that covers the video surface, thereby obscuring it when
|
||||
* visible. Obscuring the surface in this way also helps to prevent flicker at the start of
|
||||
* playback when {@code surface_type="surface_view"}.
|
||||
* <ul>
|
||||
* <li>Type: {@link View}
|
||||
* </ul>
|
||||
* <li><b>{@code exo_buffering}</b> - A view that's made visible when the player is buffering.
|
||||
* This view typically displays a buffering spinner or animation.
|
||||
* <ul>
|
||||
* <li>Type: {@link View}
|
||||
* </ul>
|
||||
* <li><b>{@code exo_subtitles}</b> - Displays subtitles.
|
||||
* <ul>
|
||||
* <li>Type: {@link SubtitleView}
|
||||
* </ul>
|
||||
* <li><b>{@code exo_artwork}</b> - Displays album art.
|
||||
* <ul>
|
||||
* <li>Type: {@link ImageView}
|
||||
* </ul>
|
||||
* <li><b>{@code exo_error_message}</b> - Displays an error message to the user if playback fails.
|
||||
* <ul>
|
||||
* <li>Type: {@link TextView}
|
||||
* </ul>
|
||||
* <li><b>{@code exo_controller_placeholder}</b> - A placeholder that's replaced with the inflated
|
||||
* {@link PlayerControlView}. Ignored if an {@code exo_controller} view exists.
|
||||
* <ul>
|
||||
* <li>Type: {@link View}
|
||||
* </ul>
|
||||
* <li><b>{@code exo_controller}</b> - An already inflated {@link PlayerControlView}. Allows use
|
||||
* of a custom extension of {@link PlayerControlView}. {@link PlayerControlView} and {@link
|
||||
* DefaultTimeBar} attributes set on the PlayerView will not be automatically propagated
|
||||
* through to this instance. If a view exists with this id, any {@code
|
||||
* exo_controller_placeholder} view will be ignored.
|
||||
* <ul>
|
||||
* <li>Type: {@link PlayerControlView}
|
||||
* </ul>
|
||||
* <li><b>{@code exo_ad_overlay}</b> - A {@link FrameLayout} positioned on top of the player which
|
||||
* is used to show ad UI (if applicable).
|
||||
* <ul>
|
||||
* <li>Type: {@link FrameLayout}
|
||||
* </ul>
|
||||
* <li><b>{@code exo_overlay}</b> - A {@link FrameLayout} positioned on top of the player which
|
||||
* the app can access via {@link #getOverlayFrameLayout()}, provided for convenience.
|
||||
* <ul>
|
||||
* <li>Type: {@link FrameLayout}
|
||||
* </ul>
|
||||
* </ul>
|
||||
*
|
||||
* <p>All child views are optional and so can be omitted if not required, however where defined they
|
||||
* must be of the expected type.
|
||||
*
|
||||
* <h2>Specifying a custom layout file</h2>
|
||||
*
|
||||
* Defining your own {@code exo_player_view.xml} is useful to customize the layout of PlayerView
|
||||
* throughout your application. It's also possible to customize the layout for a single instance in
|
||||
* a layout file. This is achieved by setting the {@code player_layout_id} attribute on a
|
||||
* PlayerView. This will cause the specified layout to be inflated instead of {@code
|
||||
* exo_player_view.xml} for only the instance on which the attribute is set.
|
||||
*/
|
||||
@UnstableApi
|
||||
public class PlayerView extends FrameLayout implements AdViewProvider {
|
||||
|
Loading…
x
Reference in New Issue
Block a user