Android------視訊播放器(包含全屏播放,快退,快進,騰訊新聞的列表播放等)
阿新 • • 發佈:2019-02-03
前段時間做了一個新聞APP,涉及到了列表視訊播放,和騰訊新聞APP差不多,總結了一下程式碼,寫了一個Demo來分享給大家。
用了 TabLayout+RecylerView+自定義視訊控制元件 完成的 列表中支援全屏播放
來看看效果圖:
列表類程式碼:
public class ZQFragmentTabItem extends BaseFragment{ RecyclerView recyclerView; AdapterRecyclerViewVideo adapterVideoList; public static ZQFragmentTabItem newInstance() { ZQFragmentTabItem fragment = new ZQFragmentTabItem(); return fragment; } private View rootView; @Override protected View getContentView(LayoutInflater inflater, ViewGroup container) { rootView = inflater.inflate(R.layout.recyclerview_video_layout, container, false); return rootView; } @Override protected void initViews(View contentView) { recyclerView = (RecyclerView) rootView.findViewById(R.id.recyclerview); recyclerView.setLayoutManager(new LinearLayoutManager(getActivity())); adapterVideoList = new AdapterRecyclerViewVideo(getActivity()); recyclerView.setAdapter(adapterVideoList); recyclerView.addOnChildAttachStateChangeListener(new RecyclerView.OnChildAttachStateChangeListener() { @Override public void onChildViewAttachedToWindow(View view) { } @Override public void onChildViewDetachedFromWindow(View view) { ZQVideoPlayer jzvd = (ZQVideoPlayer) view.findViewById(R.id.videoplayer); if (jzvd != null && ZQUtils.dataSourceObjectsContainsUri(jzvd.dataSourceObjects, ZQMediaManager.getCurrentDataSource())) { ZQVideoPlayer.releaseAllVideos(); } } }); } @Override protected void initListeners() { } @Override protected void initDatas() { } @Override public void onConfigurationChanged(Configuration newConfig) { super.onConfigurationChanged(newConfig); } @Override public void onPause() { super.onPause(); ZQVideoPlayer.releaseAllVideos(); } }
當然我這也參考了其他小夥伴的案例,然後才寫的。
參考的地址:
https://gitee.com/nathen/jiecaovideoplayer
https://gitee.com/weituotian/WeituotianVideoAndroidApp
https://gitee.com/luorenjiejie/ShiPin
希望對開發者的小夥伴們有幫助。