-
Notifications
You must be signed in to change notification settings - Fork 437
Assist Part
贾俊辉 edited this page Jun 9, 2018
·
2 revisions
关联助手是为了切播而设计的,此处的切播指的是播放视图的切换非资源切换。比如列表切全屏或者A页面切到B页面。RelationAssist是为了简化切换播放视图而设计的。
如果您有无缝切播的需求,请使用RelationAssist。
public class TestActivity extends AppcompatActivity{
//...
RelationAssist mAssist;
ViewGroup view2;
public void onCreate(Bundle saveInstance){
super.onCreate(saveInstance);
//...
//初始化RelationAssist
mAssist = new RelationAssist(this);
//设置事件处理助手
mAssist.setEventAssistHandler(eventHandler);
//设置ReceiverGroup
mReceiverGroup = ReceiverGroupManager.get().getLiteReceiverGroup(this);
mAssist.setReceiverGroup(mReceiverGroup);
//设置播放资源
DataSource dataSource = new DataSource();
//如果您需要设置起播时间点,请设置在DataSource中
dataSource.setStartPos(15000);
dataSource.setData("http://...");
dataSource.setTitle("xxx");
mAssist.setDataSource(dataSource);
//关联视图容器
mAssist.attachContainer(mVideoContainer);
//开始播放
mAssist.play();
//...
//切播
switchPlay(view2);
}
//...
private void switchPlay(ViewGroup container){
//切播到另外的视图容器中播放
mAssist.attachContainer(container);
}
}
事件处理助手,目的是为您处理基本的播放操作,比如暂停、恢复播放、重播,停止、重试等。
框架内默认已经定义了RelationAssist和BaseVideoView的事件处理助手OnAssistPlayEventHandler和OnVideoViewEventHandler
在您使用RelationAssist和BaseVideoView时需要分别设置上OnAssistPlayEventHandler和OnVideoViewEventHandler,默认的播放操作事件会自动对接处理。
如下代码:
mVideoView.setEventHandler(new OnVideoViewEventHandler(){
@Override
public void onAssistHandle(BaseVideoView assist, int eventCode, Bundle bundle) {
super.onAssistHandle(assist, eventCode, bundle);
switch(eventCode){
//自定义的事件需要您在这里自行处理
//....
}
}
});