123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167 |
- package com.yc.ycvideoplayer.newPlayer.ad;
- import android.app.Activity;
- import android.content.Context;
- import android.util.AttributeSet;
- import android.view.LayoutInflater;
- import android.view.View;
- import android.view.animation.Animation;
- import android.widget.FrameLayout;
- import android.widget.ImageView;
- import android.widget.TextView;
- import androidx.annotation.NonNull;
- import androidx.annotation.Nullable;
- import org.yc.ycvideoplayer.R;
- import com.yc.video.config.ConstantKeys;
- import com.yc.video.controller.ControlWrapper;
- import com.yc.video.ui.view.CustomTitleView;
- import com.yc.video.ui.view.InterControlView;
- import com.yc.video.tool.PlayerUtils;
- public class AdControlView extends FrameLayout implements InterControlView, View.OnClickListener {
- private Context mContext;
- protected TextView mAdTime, mAdDetail;
- protected ImageView mBack, mVolume, mFullScreen, mPlayButton;
- protected AdControlListener mListener;
- private ControlWrapper mControlWrapper;
- public AdControlView(@NonNull Context context) {
- super(context);
- init(context);
- }
- public AdControlView(@NonNull Context context, @Nullable AttributeSet attrs) {
- super(context, attrs);
- init(context);
- }
- public AdControlView(@NonNull Context context, @Nullable AttributeSet attrs, int defStyleAttr) {
- super(context, attrs, defStyleAttr);
- init(context);
- }
- private void init(Context context){
- this.mContext = context;
- LayoutInflater.from(getContext()).inflate(R.layout.layout_ad_control_view, this, true);
- mAdTime = findViewById(R.id.ad_time);
- mAdDetail = findViewById(R.id.ad_detail);
- mAdDetail.setText("了解详情>");
- mBack = findViewById(R.id.back);
- mBack.setVisibility(GONE);
- mVolume = findViewById(R.id.iv_volume);
- mFullScreen = findViewById(R.id.fullscreen);
- mPlayButton = findViewById(R.id.iv_play);
- mPlayButton.setOnClickListener(this);
- mAdTime.setOnClickListener(this);
- mAdDetail.setOnClickListener(this);
- mBack.setOnClickListener(this);
- mVolume.setOnClickListener(this);
- mFullScreen.setOnClickListener(this);
- this.setOnClickListener(new OnClickListener() {
- @Override
- public void onClick(View v) {
- if (mListener != null) mListener.onAdClick();
- }
- });
- }
- @Override
- public void attach(@NonNull ControlWrapper controlWrapper) {
- mControlWrapper = controlWrapper;
- }
- @Override
- public View getView() {
- return this;
- }
- @Override
- public void onVisibilityChanged(boolean isVisible, Animation anim) {
- }
- @Override
- public void onPlayStateChanged(int playState) {
- switch (playState) {
- case ConstantKeys.CurrentState.STATE_PLAYING:
- mControlWrapper.startProgress();
- mPlayButton.setSelected(true);
- break;
- case ConstantKeys.CurrentState.STATE_PAUSED:
- mPlayButton.setSelected(false);
- break;
- }
- }
- @Override
- public void onPlayerStateChanged(int playerState) {
- switch (playerState) {
- case ConstantKeys.PlayMode.MODE_NORMAL:
- mBack.setVisibility(GONE);
- mFullScreen.setSelected(false);
- break;
- case ConstantKeys.PlayMode.MODE_FULL_SCREEN:
- mBack.setVisibility(VISIBLE);
- mFullScreen.setSelected(true);
- break;
- }
- //暂未实现全面屏适配逻辑,需要你自己补全
- }
- @Override
- public void setProgress(int duration, int position) {
- if (mAdTime != null)
- mAdTime.setText(String.format("%s | 跳过", (duration - position) / 1000));
- }
- @Override
- public void onLockStateChanged(boolean isLocked) {
- }
- @Override
- public void onClick(View v) {
- int id = v.getId();
- if (id == R.id.back | id == R.id.fullscreen) {
- toggleFullScreen();
- } else if (id == R.id.iv_volume) {
- doMute();
- } else if (id == R.id.ad_detail) {
- if (mListener != null) mListener.onAdClick();
- } else if (id == R.id.ad_time) {
- if (mListener != null) mListener.onSkipAd();
- } else if (id == R.id.iv_play) {
- mControlWrapper.togglePlay();
- }
- }
- private void doMute() {
- mControlWrapper.setMute(!mControlWrapper.isMute());
- mVolume.setImageResource(mControlWrapper.isMute() ? R.drawable.ic_player_volume_up : R.drawable.ic_player_volume_off);
- }
- /**
- * 横竖屏切换
- */
- private void toggleFullScreen() {
- Activity activity = PlayerUtils.scanForActivity(getContext());
- mControlWrapper.toggleFullScreen(activity);
- }
- public void setListener(AdControlListener listener) {
- this.mListener = listener;
- }
- public interface AdControlListener {
- void onAdClick();
- void onSkipAd();
- }
- }
|