AudioAndVideoPlayActivity2.java 8.4 KB
package com.yinhebairong.clasmanage.ui;

import android.content.Intent;
import android.content.res.Configuration;
import android.graphics.Color;
import android.media.MediaPlayer;
import android.os.Handler;
import android.os.Message;
import android.view.Gravity;
import android.view.LayoutInflater;
import android.view.View;
import android.view.WindowManager;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.PopupWindow;
import android.widget.SeekBar;

import com.shuyu.gsyvideoplayer.builder.GSYVideoOptionBuilder;
import com.shuyu.gsyvideoplayer.listener.GSYSampleCallBack;
import com.shuyu.gsyvideoplayer.listener.LockClickListener;
import com.shuyu.gsyvideoplayer.utils.OrientationUtils;
import com.shuyu.gsyvideoplayer.video.StandardGSYVideoPlayer;
import com.yinhebairong.clasmanage.R;
import com.yinhebairong.clasmanage.base.BaseActivity;
import com.yinhebairong.clasmanage.base.instant.Layout;
import com.yinhebairong.clasmanage.base.instant.TopNavigationBar;
import com.yinhebairong.clasmanage.base.instant.slideslip.SlideLip;
import com.yinhebairong.clasmanage.m.M;
import com.yinhebairong.clasmanage.ui.jxt.activity.HD.Fbhd_Activity;
import com.yinhebairong.clasmanage.ui.jxt.activity.HD.Hdxq_Activity;
import com.yinhebairong.clasmanage.view.DebugLog;
import com.yinhebairong.clasmanage.view.pop.AudioPopupWindow;

import java.io.IOException;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;

import butterknife.BindView;
import butterknife.ButterKnife;
import butterknife.OnClick;

@SlideLip(slidelip = false) // 侧滑返回上一页 , 默认不开启 \
@TopNavigationBar(color = Color.TRANSPARENT, setBarBiack = 0)   // 状态栏颜色 , 状态栏样式
@Layout(R.layout.activity_audio_video)
public class AudioAndVideoPlayActivity2 extends BaseActivity {
    @BindView(R.id.include_back)
    ImageView includeBack;
    @BindView(R.id.include_right)
    ImageView include_right;
    @BindView(R.id.videoplay)
    StandardGSYVideoPlayer videoplay;
    private boolean isPlay;
    private boolean isPause;
    GSYVideoOptionBuilder gsyVideoOption;
    OrientationUtils orientationUtils;

    @Override
    protected void initData() {
        ButterKnife.bind(this);
        initVideo();
    }

    private void initVideo() {
        gsyVideoOption = new GSYVideoOptionBuilder();
        videoplay.getBackButton().setVisibility(View.GONE);
        //外部辅助的旋转,帮助全屏
        orientationUtils = new OrientationUtils(this, videoplay);
        //初始化不打开外部的旋转
        orientationUtils.setEnable(false);
//        setplay(gsyVideoOption,"http://class.ynsdfx.com/uploads/20200410/06633beeb1125bea23d851bdd787bf49.mp4");
        setplay(gsyVideoOption, "http://class.ynsdfx.com/uploads/20200410/e0ed7cb8334da63c1a532bae110bf3eb.mp4");
    }

    @Override
    protected void setEvent() {
        includeBack.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                finish();
            }
        });
    }

    @OnClick({R.id.include_right})
    public void onViewClicked(View view) {
        switch (view.getId()) {
            case R.id.include_right:
                optionPop();
                break;
        }
    }

    PopupWindow downloadPopupwindow;

    /**
     * 右上角pop
     */
    private void optionPop() {
        View view = LayoutInflater.from(AudioAndVideoPlayActivity2.this).inflate(R.layout.popup_download, null);
        // 弹窗
        downloadPopupwindow = new PopupWindow(view, WindowManager.LayoutParams.MATCH_PARENT, WindowManager.LayoutParams.MATCH_PARENT);
        downloadPopupwindow.setOutsideTouchable(true);
        downloadPopupwindow.setTouchable(true);
        downloadPopupwindow.setFocusable(true);
        downloadPopupwindow.setBackgroundDrawable(getResources().getDrawable(R.color.color_tm));
        downloadPopupwindow.showAtLocation(view, Gravity.BOTTOM, 0, M.getNavigationBarHeight(this));
        view.findViewById(R.id.tv_download).setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                downloadPopupwindow.dismiss();
            }
        });

        view.findViewById(R.id.tv_cancal).setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                downloadPopupwindow.dismiss();
            }
        });
        view.findViewById(R.id.tv_zhuanfa).setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                audioPop();
                downloadPopupwindow.dismiss();
            }
        });
    }

    PopupWindow audioPop;
    AudioPopupWindow customPopupWindow;

    /**
     * 音频pop
     */
    private void audioPop() {
        customPopupWindow = new AudioPopupWindow(AudioAndVideoPlayActivity2.this);
        customPopupWindow.start("http://class.ynsdfx.com/uploads/20200410/4958b3dc56895cedffbe20ca86869c4c.wav","试试");
//        View view = LayoutInflater.from(AudioAndVideoPlayActivity2.this).inflate(R.layout.popup_hdxq, null);
//        // 弹窗
//        audioPop = new PopupWindow(view, WindowManager.LayoutParams.MATCH_PARENT, WindowManager.LayoutParams.MATCH_PARENT);
//        audioPop.setOutsideTouchable(true);
//        audioPop.setTouchable(true);
//        audioPop.setFocusable(true);
//        audioPop.setBackgroundDrawable(getResources().getDrawable(R.color.color_tm));
//        audioPop.showAtLocation(view, Gravity.BOTTOM, 0, M.getNavigationBarHeight(this));
//        view.findViewById(R.id.tv_download).setOnClickListener(new View.OnClickListener() {
//            @Override
//            public void onClick(View v) {
//                audioPop.dismiss();
//            }
//        });
//
//        view.findViewById(R.id.tv_cancal).setOnClickListener(new View.OnClickListener() {
//            @Override
//            public void onClick(View v) {
//                audioPop.dismiss();
//            }
//        });
//        view.findViewById(R.id.tv_zhuanfa).setOnClickListener(new View.OnClickListener() {
//            @Override
//            public void onClick(View v) {
//                audioPop.dismiss();
//            }
//        });
    }

    private void setplay(GSYVideoOptionBuilder gsyVideoOption, String url) {
        gsyVideoOption
                .setIsTouchWiget(true)
                .setRotateViewAuto(false)
                .setLockLand(false)
                .setAutoFullWithSize(true)
                .setShowFullAnimation(false)
                .setNeedLockFull(true)
                .setUrl(url)
                .setCacheWithPlay(false)   //  .setVideoTitle("测试视频")
                .setVideoAllCallBack(new GSYSampleCallBack() {
                    @Override
                    public void onPrepared(String url, Object... objects) {
                        super.onPrepared(url, objects);
                        //开始播放了才能旋转和全屏
                        orientationUtils.setEnable(true);
                        isPlay = true;
                    }

                    @Override
                    public void onQuitFullscreen(String url, Object... objects) {
                        super.onQuitFullscreen(url, objects);
                    }
                }).setLockClickListener(new LockClickListener() {
            @Override
            public void onClick(View view, boolean lock) {

            }
        }).build(videoplay);

        videoplay.startPlayLogic();

    }

    @Override
    public void onConfigurationChanged(Configuration newConfig) {
        super.onConfigurationChanged(newConfig);
        //如果旋转了就全屏
        if (isPlay && !isPause) {
            videoplay.onConfigurationChanged(this, newConfig, orientationUtils, true, true);
        }
    }

    @Override
    protected void onPause() {
        videoplay.getCurrentPlayer().onVideoPause();
        super.onPause();
        isPause = true;
    }

    @Override
    protected void onResume() {
        videoplay.getCurrentPlayer().onVideoResume(false);
        super.onResume();
        isPause = false;
    }

    @Override
    protected void onDestroy() {
        super.onDestroy();
        if (isPlay && videoplay != null) {
            videoplay.getCurrentPlayer().release();
        }
        if (orientationUtils != null) {
            orientationUtils.releaseListener();
        }
        if (customPopupWindow != null) {
            customPopupWindow.destroy();
        }
    }


}