<com.shuyu.gsyvideoplayer.video.StandardGSYVideoPlayer
android:id="@+id/view"
android:layout_width="match_parent"
android:layout_height="match_parent"
></com.shuyu.gsyvideoplayer.video.StandardGSYVideoPlayer>
public class BigBeas {
/**
* message : {"audioUrl":"https://v-rtmp-ngb.qf.56.com/live/3983114_1559345783338?only-audio=1&wsSecret=026bdb2a17f14a3fe9bb339293e7dee9&wsTime=5CF1ED45&cid=1&ver=ngb&cip=ngb&get_url=6","rUrl":"https://v-ngb.qf.56.com/live/3983114_1559345783338.flv?wsSecret=026bdb2a17f14a3fe9bb339293e7dee9&wsTime=5CF1ED45&cid=1&ver=ngb&cip=ngb&get_url=9","hd":3,"sp":2,"push":1,"live":1}
* status : 200
*/
private MessageBean message;
private int status;
public MessageBean getMessage() {
return message;
}
public void setMessage(MessageBean message) {
this.message = message;
}
public int getStatus() {
return status;
}
public void setStatus(int status) {
this.status = status;
}
public static class MessageBean {
/**
* audioUrl : https://v-rtmp-ngb.qf.56.com/live/3983114_1559345783338?only-audio=1&wsSecret=026bdb2a17f14a3fe9bb339293e7dee9&wsTime=5CF1ED45&cid=1&ver=ngb&cip=ngb&get_url=6
* rUrl : https://v-ngb.qf.56.com/live/3983114_1559345783338.flv?wsSecret=026bdb2a17f14a3fe9bb339293e7dee9&wsTime=5CF1ED45&cid=1&ver=ngb&cip=ngb&get_url=9
* hd : 3
* sp : 2
* push : 1
* live : 1
*/
private String audioUrl;
private String rUrl;
private int hd;
private int sp;
private int push;
private int live;
public String getAudioUrl() {
return audioUrl;
}
public void setAudioUrl(String audioUrl) {
this.audioUrl = audioUrl;
}
public String getRUrl() {
return rUrl;
}
public void setRUrl(String rUrl) {
this.rUrl = rUrl;
}
public int getHd() {
return hd;
}
public void setHd(int hd) {
this.hd = hd;
}
public int getSp() {
return sp;
}
public void setSp(int sp) {
this.sp = sp;
}
public int getPush() {
return push;
}
public void setPush(int push) {
this.push = push;
}
public int getLive() {
return live;
}
public void setLive(int live) {
this.live = live;
}
}
}
public class AlterBean {
/**
* code : 000000
* streamType : 1
* url : https://1grauemttgr3nhcjzgezdcpa.ourdvsss.com/v-ngb.qf.56.com/live/3983114_1559345783338.flv?wsSecret=026bdb2a17f14a3fe9bb339293e7dee9&wsTime=5CF1ED45&cid=1&ver=ngb&cip=ngb&wsiphost=ipdbm
*/
private String code;
private String streamType;
private String url;
public String getCode() {
return code;
}
public void setCode(String code) {
this.code = code;
}
public String getStreamType() {
return streamType;
}
public void setStreamType(String streamType) {
this.streamType = streamType;
}
public String getUrl() {
return url;
}
public void setUrl(String url) {
this.url = url;
}
}
public interface MyInterface {
@GET
Observable<BigBeas> bigBean(@Url String url);
@GET
Observable<AlterBean> alterBean(@Url String url);
}
public class LiveActivity extends AppCompatActivity{
private StandardGSYVideoPlayer videoPlayer;
private OrientationUtils orientationUtils;
String bigBaseUrl = "http://qf.56.com/play/v1/";
String bigUrl = "http://qf.56.com/play/v1/preLoading.android?roomId=";
String alterBaseUrl = "https://v-ngb.qf.56.com/live/";
private Observable<BigBeas> bigBeanObservable;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_live);
initView();
}
private void initView() {
videoPlayer = findViewById(R.id.view);
// RXJAVA+Retrofit获取最外层的数据
Retrofit.Builder builder = new Retrofit.Builder();
builder.baseUrl(bigBaseUrl);
builder.addConverterFactory(GsonConverterFactory.create());
builder.addCallAdapterFactory(RxJava2CallAdapterFactory.create());
Retrofit build = builder.build();
MyInterface myInterface = build.create(MyInterface.class);
String index = getIntent().getStringExtra("index");
if (index.equals("1")) {
bigBeanObservable = myInterface.bigBean(bigUrl + "520166");
} else if (index.equals("2")) {
bigBeanObservable = myInterface.bigBean(bigUrl + "520529");
}
bigBeanObservable
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new Observer<BigBeas>() {
@Override
public void onSubscribe(Disposable d) {
}
@Override
public void onNext(BigBeas bigBeas) {
BigBeas.MessageBean message = bigBeas.getMessage();
String rUrl = message.getRUrl();
Log.i("MyCL", "rUrl" + rUrl);
//RXJAVA+Retrofit获取里面的数据
Retrofit.Builder builder1 = new Retrofit.Builder();
builder1.baseUrl(alterBaseUrl);
builder1.addConverterFactory(GsonConverterFactory.create());
builder1.addCallAdapterFactory(RxJava2CallAdapterFactory.create());
Retrofit build1 = builder1.build();
MyInterface myInterface1 = build1.create(MyInterface.class);
Observable<AlterBean> alterBeanObservable = myInterface1.alterBean(rUrl);
alterBeanObservable
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new Observer<AlterBean>() {
@Override
public void onSubscribe(Disposable d) {
}
@Override
public void onNext(AlterBean alterBean) {
String url = alterBean.getUrl();
//GSY播放直播
videoPlayer.setUp(url, true, "直播拉流");
//增加封面
ImageView imageView = new ImageView(LiveActivity.this);
imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);
imageView.setImageResource(R.mipmap.ic_launcher);
videoPlayer.setThumbImageView(imageView);
//增加title
videoPlayer.getTitleTextView().setVisibility(View.VISIBLE);
//设置返回键
videoPlayer.getBackButton().setVisibility(View.VISIBLE);
//设置旋转
orientationUtils = new OrientationUtils(LiveActivity.this, videoPlayer);
//设置全屏按键功能,这是使用的是选择屏幕,而不是全屏
videoPlayer.getFullscreenButton().setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
orientationUtils.resolveByClick();
}
});
//是否可以滑动调整
videoPlayer.setIsTouchWiget(true);
//设置返回按键功能
videoPlayer.getBackButton().setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
onBackPressed();
}
});
videoPlayer.startPlayLogic();
}
@Override
public void onError(Throwable e) {
}
@Override
public void onComplete() {
}
});
}
@Override
public void onError(Throwable e) {
}
@Override
public void onComplete() {
}
});
// String url = "https://1grauemttgr3nhcjsgyzdocy.ourdvsss.com/v-ngb.qf.56.com/live/520700_1559347358299.flv?wsSecret=bc19e7f4df5713fe48037ce93f601ed1&wsTime=5CF1C9DD&cid=1&ver=ngb&cip=ngb&wsiphost=ipdbm";
}