我點擊RecyclerView任意一個item的播放按鈕,始終都是第一個item播放,請問這個該怎么解決?視頻播放用的是IjkPlayer,Adapter用的是BRVAH.
public class HomeFragment extends Fragment implements BaseQuickAdapter.OnItemChildClickListener {
@BindView(R.id.rv_home)
RecyclerView mRvHome;
private HomeAdapter homeAdapter;
private List<HomeListBean> mDatas;
private PlayerView player;
private Context mContext;
private List<VideoijkBean> list;
private PowerManager.WakeLock wakeLock;
View rootView;
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, Bundle savedInstanceState) {
this.mContext = getActivity();
rootView = inflater.inflate(R.layout.fragment_home, null);
ButterKnife.bind(this, rootView);
initData();
initEvent();
return rootView;
}
private void initData() {
mDatas = new ArrayList<>();
HomeListBean bean;
for (int i = 0; i < 6; i++) {
bean = new HomeListBean();
bean.setTvHomeItemTitle("2018年德瑪西亞冬季賽八強賽敗者組決賽 第3場2018年德瑪西亞第3場2018年德瑪西亞第3場2018年德瑪西亞");
bean.setBtnGameType("LOL");
bean.setTvType("解說");
bean.setTvYearType("2018德瑪西亞杯");
bean.setTvVideoCount("555個視頻");
bean.setImgUrl("http://pic2.nipic.com/20090413/406638_125424003_2.jpg");
mDatas.add(bean);
}
LinearLayoutManager linearLayoutManager = new LinearLayoutManager(getActivity());
linearLayoutManager.setOrientation(LinearLayoutManager.VERTICAL);
mRvHome.setLayoutManager(linearLayoutManager);
mRvHome.addItemDecoration(new DividerItemDecoration(getActivity(), 1));
homeAdapter = new HomeAdapter(R.layout.item_home, mDatas, mContext);
mRvHome.setLayoutManager(new LinearLayoutManager(getActivity()));
}
private void initEvent() {
mRvHome.setAdapter(homeAdapter);
homeAdapter.setOnItemChildClickListener(this);
}
@Override
public void onItemChildClick(BaseQuickAdapter adapter, View view, int position) {
Toast.makeText(mContext, "點擊了第" + position + "個播放", Toast.LENGTH_SHORT).show();
/**虛擬按鍵的隱藏方法*/
rootView.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {
@Override
public void onGlobalLayout() {
//比較Activity根布局與當(dāng)前布局的大小
int heightDiff = rootView.getRootView().getHeight() - rootView.getHeight();
if (heightDiff > 100) {
//大小超過100時,一般為顯示虛擬鍵盤事件
rootView.setSystemUiVisibility(View.SYSTEM_UI_FLAG_VISIBLE);
} else {
//大小小于100時,為不顯示虛擬鍵盤或虛擬鍵盤隱藏
rootView.setSystemUiVisibility(View.SYSTEM_UI_FLAG_HIDE_NAVIGATION);
}
}
});
/**常亮*/
PowerManager pm = (PowerManager) mContext.getSystemService(Context.POWER_SERVICE);
wakeLock = pm.newWakeLock(PowerManager.SCREEN_BRIGHT_WAKE_LOCK, "liveTAG");
wakeLock.acquire();
list = new ArrayList<>();
String url = "http://9890.vod.myqcloud.com/9890_9c1fa3e2aea011e59fc841df10c92278.f20.mp4";
// View itemView = View.inflate(mContext, R.layout.item_home, null);
player = new PlayerView(getActivity(), rootView) {
@Override
public PlayerView toggleProcessDurationOrientation() {
hideSteam(getScreenOrientation() == ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
return setProcessDurationOrientation(getScreenOrientation() == ActivityInfo.SCREEN_ORIENTATION_PORTRAIT ? PlayStateParams.PROCESS_PORTRAIT : PlayStateParams.PROCESS_LANDSCAPE);
}
@Override
public PlayerView setPlaySource(List<VideoijkBean> list) {
return super.setPlaySource(list);
}
};
player.setProcessDurationOrientation(PlayStateParams.PROCESS_PORTRAIT)
.setScaleType(PlayStateParams.fillparent)
.forbidTouch(false)
.hideSteam(true)
.hideCenterPlayer(true)
// .showThumbnail(new OnShowThumbnailListener() {
// @Override
// public void onShowThumbnail(ImageView ivThumbnail) {
// Glide.with(mContext)
// .load("http://pic2.nipic.com/20090413/406638_125424003_2.jpg")//默認(rèn)封面
// .placeholder(R.mipmap.temp_home)
// .error(R.color.cl_error)
// .into(ivThumbnail);
// }
// })
.setPlaySource(url)//播放網(wǎng)絡(luò)視頻
.setChargeTie(false, 60).startPlay();// 手動設(shè)置暫停時間,true為需要收費(根據(jù)maxPlaytime自動暫停),false不收費(正常完整播放)
}
@Override
public void onPause() {
super.onPause();
if (player != null) {
player.onPause();
}
/**demo的內(nèi)容,恢復(fù)系統(tǒng)其它媒體的狀態(tài)*/
MediaUtils.muteAudioFocus(mContext, true);
}
@Override
public void onResume() {
super.onResume();
if (player != null) {
player.onResume();
}
/**demo的內(nèi)容,暫停系統(tǒng)其它媒體的狀態(tài)*/
MediaUtils.muteAudioFocus(mContext, false);
/**demo的內(nèi)容,激活設(shè)備常亮狀態(tài)*/
if (wakeLock != null) {
wakeLock.acquire();
}
}
@Override
public void onDestroy() {
super.onDestroy();
if (player != null) {
player.onDestroy();
}
}
@Override
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
if (player != null) {
player.onConfigurationChanged(newConfig);
}
}
//TODO:Fragment監(jiān)聽返回按鈕
// @Override
// public void onBackPressed() {
// if (player != null && player.onBackPressed()) {
// return;
// }
// super.onBackPressed();
// /**demo的內(nèi)容,恢復(fù)設(shè)備亮度狀態(tài)*/
// if (wakeLock != null) {
// wakeLock.release();
// }
// }
}
北大青鳥APTECH成立于1999年。依托北京大學(xué)優(yōu)質(zhì)雄厚的教育資源和背景,秉承“教育改變生活”的發(fā)展理念,致力于培養(yǎng)中國IT技能型緊缺人才,是大數(shù)據(jù)專業(yè)的國家
北大青鳥中博軟件學(xué)院創(chuàng)立于2003年,作為華東區(qū)著名互聯(lián)網(wǎng)學(xué)院和江蘇省首批服務(wù)外包人才培訓(xùn)基地,中博成功培育了近30000名軟件工程師走向高薪崗位,合作企業(yè)超4
中公教育集團創(chuàng)建于1999年,經(jīng)過二十年潛心發(fā)展,已由一家北大畢業(yè)生自主創(chuàng)業(yè)的信息技術(shù)與教育服務(wù)機構(gòu),發(fā)展為教育服務(wù)業(yè)的綜合性企業(yè)集團,成為集合面授教學(xué)培訓(xùn)、網(wǎng)
達(dá)內(nèi)教育集團成立于2002年,是一家由留學(xué)海歸創(chuàng)辦的高端職業(yè)教育培訓(xùn)機構(gòu),是中國一站式人才培養(yǎng)平臺、一站式人才輸送平臺。2014年4月3日在美國成功上市,融資1
曾工作于聯(lián)想擔(dān)任系統(tǒng)開發(fā)工程師,曾在博彥科技股份有限公司擔(dān)任項目經(jīng)理從事移動互聯(lián)網(wǎng)管理及研發(fā)工作,曾創(chuàng)辦藍(lán)懿科技有限責(zé)任公司從事總經(jīng)理職務(wù)負(fù)責(zé)iOS教學(xué)及管理工作。
浪潮集團項目經(jīng)理。精通Java與.NET 技術(shù), 熟練的跨平臺面向?qū)ο箝_發(fā)經(jīng)驗,技術(shù)功底深厚。 授課風(fēng)格 授課風(fēng)格清新自然、條理清晰、主次分明、重點難點突出、引人入勝。
精通HTML5和CSS3;Javascript及主流js庫,具有快速界面開發(fā)的能力,對瀏覽器兼容性、前端性能優(yōu)化等有深入理解。精通網(wǎng)頁制作和網(wǎng)頁游戲開發(fā)。
具有10 年的Java 企業(yè)應(yīng)用開發(fā)經(jīng)驗。曾經(jīng)歷任德國Software AG 技術(shù)顧問,美國Dachieve 系統(tǒng)架構(gòu)師,美國AngelEngineers Inc. 系統(tǒng)架構(gòu)師。