package com.hpw.myapp.ui.tv.activity;
import android.content.Context;
import android.os.Bundle;
import android.view.SurfaceView;
import android.view.View;
import android.view.WindowManager;
import android.widget.ImageView;
import com.bumptech.glide.Glide;
import com.bumptech.glide.load.resource.drawable.GlideDrawable;
import com.bumptech.glide.request.target.ImageViewTarget;
import com.hpw.myapp.R;
import com.hpw.myapp.ui.tv.model.FirstBean;
import com.hpw.myapp.ui.tv.model.OtherBean;
import com.hpw.myapp.ui.tv.model.TvShowBean;
import com.hpw.myapp.ui.tv.model.TvShowModel;
import com.hpw.myapp.ui.tv.presenter.TvShowPresenter;
import com.hpw.myapp.widget.media.Blurry;
import com.hpw.myapp.widget.media.LivePlayerHolder;
import com.hpw.myapp.widget.media.LoadingImageView;
import org.json.JSONObject;
import java.util.Map;
/**
* Created by hpw on 16/12/4.
*/
public class TvShowFullActivity extends BaseTvShowActivity<TvShowPresenter, TvShowModel> {
private SurfaceView mSurfaceView;
private LivePlayerHolder playerHolder;
private FirstBean.RoomBean.ListBean mPlayBean;
private OtherBean.DataBean mPlayBean1;
private int mCodec;
private String mPlayerPath;
private ImageView bgImg;
private ImageView imgBack;
private LoadingImageView loadingView;
@Override
public int getLayoutId() {
return R.layout.activity_tv_show_full;
}
@Override
public void initView(Bundle savedInstanceState) {
getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
initPlayer();
initData();
}
private void initPlayer() {
try {
mPlayBean = (FirstBean.RoomBean.ListBean) getIntent().getSerializableExtra("playBean");
} catch (ClassCastException e) {
mPlayBean1 = (OtherBean.DataBean) getIntent().getSerializableExtra("playBean");
}
mSurfaceView = (SurfaceView) findViewById(R.id.mSurfaceView);
bgImg = (ImageView) findViewById(R.id.bgImg);
loadingView = (LoadingImageView) findViewById(R.id.loadingView);
imgBack = (ImageView) findViewById(R.id.imgBack);
imgBack.setOnClickListener(v -> onBackPressed());
mCodec = getIntent().getIntExtra("mediaCodec", 0);
}
private void initData() {
if (mPlayBean != null) {
mPresenter.onTvShow(mPlayBean.getUid());
Glide.with(this).load(mPlayBean.getLove_cover()).into(new ImageViewTarget<GlideDrawable>(bgImg) {
@Override
protected void setResource(GlideDrawable resource) {
bgImg.setImageDrawable(resource);
Blurry.with(TvShowFullActivity.this).animate().radius(10).sampling(8).capture(bgImg).into(bgImg);
}
});
} else if (mPlayBean1 != null) {
mPresenter.onTvShow(mPlayBean1.getUid());
Glide.with(this).load(mPlayBean1.getLove_cover()).into(new ImageViewTarget<GlideDrawable>(bgImg) {
@Override
protected void setResource(GlideDrawable resource) {
bgImg.setImageDrawable(resource);
Blurry.with(TvShowFullActivity.this).animate().radius(10).sampling(8).capture(bgImg).into(bgImg);
}
});
}
}
@Override
protected void onDestroy() {
if (playerHolder != null) {
playerHolder.release();
playerHolder = null;
}
super.onDestroy();
}
@Override
protected void onResume() {
super.onResume();
if (playerHolder != null)
playerHolder.onResume();
}
@Override
protected void onPause() {
super.onPause();
if (playerHolder != null)
playerHolder.onPause();
}
@Override
protected void toPrepare() {
if (playerHolder != null)
playerHolder.prepare();
}
@Override
public void showContent(TvShowBean info) {
JSONObject jsonObject = new JSONObject((Map) info.getLive().getWs().getHls());
JSONObject object = jsonObject.optJSONObject("0");
if (object != null) {
mPlayerPath = object.optString("src");
} else {
mPlayerPath = jsonObject.optJSONObject("4").optString("src");
}
playerHolder = new LivePlayerHolder(this, mSurfaceView, mCodec, mPlayerPath);
playerHolder.startPlayer();
}
@Override
public void onConnecting() {
bgImg.setAlpha(1);
bgImg.setVisibility(View.VISIBLE);
loadingView.setVisibility(View.VISIBLE);
}
@Override
public void onReConnecting() {
bgImg.setAlpha(1);
bgImg.setVisibility(View.VISIBLE);
loadingView.setVisibility(View.VISIBLE);
}
@Override
public void onConnectSucces() {
loadingView.setVisibility(View.GONE);
}
@Override
public void onConnectFailed() {
}
@Override
public void onPlayComleted() {
}
@Override
public void onPlayerStart() {
loadingView.setVisibility(View.GONE);
bgImg.animate().alpha(0).setDuration(1000).start();
}
@Override
public void onPlayePause() {
}
@Override
public Context getContext() {
return this;
}
@Override
public void showError(String msg) {
}
}