## 自定义布局 ### 一.布局使用说明 1. 布局内容由使用者 任意定义布局 2. 布局内必须有一个view的id 必须指定 3. 布局内必须有一个view的id 必须指定 4. 布局内必须有一个view的id 必须指定 #### view指定id 说明 1. 重播布局→ **android:id="@id/exo_player_replay_btn_id"** 2. 错误布局→ **android:id="@id/exo_player_error_btn_id"** 3. 非wifi播放提示布局→ **android:id="@id/exo_player_btn_hint_btn_id"** 4. 加载布局→ **android:id="@id/exo_loading_show_text"** 5. 封面图布局——播放按钮指定ID→ ** android:id="@id/exo_preview_play"** 6. 封面图布局——封面图imageView ID→ ** android:id="@id/exo_preview_image"** >>注意: >> >>**1.如果指定不指定id 系统不执行相应事件处理
_2.注意加载布局的显示加载速度的控件”exo_loading_show_text“,控件只能是TextView
_3.如果你需要不显示加载网络提示,不指定控件id** ### 二.示例如下 1.-重播布局 ``` ``` 3.-错误布局 ``` ``` 3.-非wifi播放提示布局 ``` ``` 4.-加载布局 [动画控件→戳我](https://github.com/81813780/AVLoadingIndicatorView) ``` ``` ### 三.手势布局自定义布局(布局不需要指定控件id) 1.布局引用 ```` ```` 2.代码使用 ```` //实现你手势信息回调接口 exoPlayerManager.setOnGestureBrightnessListener();//亮度 exoPlayerManager.setOnGestureProgressListener(); //进度 exoPlayerManager.setOnGestureVolumeListener(); //音频 //以下示例代码 //亮度 exoPlayerManager.setOnGestureBrightnessListener(new OnGestureBrightnessListener() { @Override public void setBrightnessPosition(int mMax, int currIndex) { //显示你的布局 videoPlayerView.getGestureBrightnessLayout().setVisibility(View.VISIBLE); //为你布局显示内容自定义内容 videoBrightnessPro.setMax(mMax); videoBrightnessImg.setImageResource(chuangyuan.ycj.videolibrary.R.drawable.ic_brightness_6_white_48px); videoBrightnessPro.setProgress(currIndex); } }); //进度 exoPlayerManager.setOnGestureProgressListener(new OnGestureProgressListener() { @Override public void showProgressDialog(long seekTimePosition, long duration, String seekTime, String totalTime) { //显示你的布局 videoPlayerView.getGestureProgressLayout().setVisibility(View.VISIBLE); exo_video_dialog_pro_text.setTextColor(Color.RED); exo_video_dialog_pro_text.setText(seekTime + "/" + totalTime); } //进度完毕设置 @Override public void endGestureProgress(long position) { exoPlayerManager.seekTo(position); } }); //音频 exoPlayerManager.setOnGestureVolumeListener(new OnGestureVolumeListener() { @Override public void setVolumePosition(int mMax, int currIndex) { //显示你的布局 videoPlayerView.getGestureAudioLayout().setVisibility(View.VISIBLE); //为你布局显示内容自定义内容 videoAudioPro.setMax(mMax); videoAudioPro.setProgress(currIndex); videoAudioImg.setImageResource(currIndex == 0 ? R.drawable.ic_volume_off_white_48px : R.drawable.ic_volume_up_white_48px); } }); ```` ### 四. 封面图布局自定义布局(配合使用使用自定义控制布局) 1.布局引用 ```` ```` >>注意: 1.播放按钮指定ID→ ** android:id="@id/exo_preview_play"** 2.封面图imageView ID→ ** android:id="@id/exo_preview_image"** 3.注意事项: * 1.你不需要关心手势操作后,布局隐藏问题。自动隐藏布局,专注你需要显示内容就可以了。 * 2.手势布局可以自定义其中一个或者两个布局。有使用者自己决定需要自定义布局。 ### 五.视频播放进度控件自定义 可以添加属性来自定义视图。可用属性: | name | type | info | |------------------------ |-----------|---------------------------------------------------------- | | scrubber_drawable | reference | 设置视频当前播放圆点的自定义资源可以图片 | | scrubber_color | color | 设置视频进度圆点的颜色 | | buffered_color | color | 设置视频加载缓存进度的颜色 | | unplayed_color | color | 设置没有加载过进度的颜色 | | played_color | color | 设置已经播放过视频的颜色 | | ad_marker_color | color | 使用google广告sdk标记的颜色 | | played_ad_marker_color | color | 使用google广告sdk播放后标记的颜色 | | bar_height | dimension | 设置视频进度显示高度 | | touch_target_height | dimension | 设置 触摸进度条显示的高度(不可用) | | ad_marker_width | dimension | 使用google广告sdk 标记段宽度 | | scrubber_enabled_size | dimension | 设置 视频进度条显示右边距大小 | | scrubber_dragged_size | dimension | 设置视频进度条显示左边距大小 |