android 使用com.google.android.exoplayer2.ui.StyledPlayerView视频播放器,如何添加自定义可滑动的进度条
时间: 2023-12-22 17:05:30 浏览: 514
要添加自定义可滑动的进度条,你需要在代码中创建自定义的 `SeekBar` 控件,然后将其添加到 `StyledPlayerControlView` 中。
以下是一个简单的示例:
1. 创建自定义的 `SeekBar` 控件
```java
public class CustomSeekBar extends SeekBar {
public CustomSeekBar(Context context) {
super(context);
}
public CustomSeekBar(Context context, AttributeSet attrs) {
super(context, attrs);
}
public CustomSeekBar(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
}
@Override
public boolean onTouchEvent(MotionEvent event) {
if (!isEnabled()) {
return false;
}
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN:
case MotionEvent.ACTION_MOVE:
case MotionEvent.ACTION_UP:
// 在这里处理SeekBar的滑动事件
break;
}
return true;
}
}
```
在 `onTouchEvent` 方法中,你可以处理 `SeekBar` 的滑动事件。
2. 将自定义的 `SeekBar` 添加到 `StyledPlayerControlView` 中
```java
StyledPlayerView playerView = findViewById(R.id.player_view);
playerView.setControllerVisibilityListener(new PlayerControlView.VisibilityListener() {
@Override
public void onVisibilityChange(int visibility) {
if (visibility == View.VISIBLE) {
// 获取控制器视图
ViewGroup controlView = playerView.findViewById(R.id.exo_controller);
// 创建自定义的SeekBar
CustomSeekBar customSeekBar = new CustomSeekBar(playerView.getContext());
// 设置SeekBar样式和布局参数
customSeekBar.setProgressDrawable(ContextCompat.getDrawable(playerView.getContext(), R.drawable.seekbar_progress));
customSeekBar.setThumb(ContextCompat.getDrawable(playerView.getContext(), R.drawable.seekbar_thumb));
FrameLayout.LayoutParams layoutParams = new FrameLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT);
layoutParams.gravity = Gravity.BOTTOM;
customSeekBar.setLayoutParams(layoutParams);
// 将SeekBar添加到控制器视图中
controlView.addView(customSeekBar);
}
}
});
```
在 `onVisibilityChange` 方法中,你可以获取控制器视图,并在其中添加自定义的 `SeekBar`。
这样,你就可以在 `StyledPlayerView` 中添加自定义的可滑动进度条了。
阅读全文