在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問(wèn)答/Android/ Android開(kāi)發(fā),請(qǐng)教一個(gè)用RecyclerView列表播放視頻的問(wèn)題

Android開(kāi)發(fā),請(qǐng)教一個(gè)用RecyclerView列表播放視頻的問(wèn)題

圖片描述
我點(diǎn)擊RecyclerView任意一個(gè)item的播放按鈕,始終都是第一個(gè)item播放,請(qǐng)問(wèn)這個(gè)該怎么解決?視頻播放用的是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年德瑪西亞冬季賽八強(qiáng)賽敗者組決賽 第3場(chǎng)2018年德瑪西亞第3場(chǎng)2018年德瑪西亞第3場(chǎng)2018年德瑪西亞");
            bean.setBtnGameType("LOL");
            bean.setTvType("解說(shuō)");
            bean.setTvYearType("2018德瑪西亞杯");
            bean.setTvVideoCount("555個(gè)視頻");
            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, "點(diǎn)擊了第" + position + "個(gè)播放", 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) {
                    //大小超過(guò)100時(shí),一般為顯示虛擬鍵盤(pán)事件
                    rootView.setSystemUiVisibility(View.SYSTEM_UI_FLAG_VISIBLE);
                } else {
                    //大小小于100時(shí),為不顯示虛擬鍵盤(pán)或虛擬鍵盤(pán)隱藏
                    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();//  手動(dòng)設(shè)置暫停時(shí)間,true為需要收費(fèi)(根據(jù)maxPlaytime自動(dòng)暫停),false不收費(fèi)(正常完整播放)
    }

    @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)聽(tīng)返回按鈕
//    @Override
//    public void onBackPressed() {
//        if (player != null && player.onBackPressed()) {
//            return;
//        }
//        super.onBackPressed();
//        /**demo的內(nèi)容,恢復(fù)設(shè)備亮度狀態(tài)*/
//        if (wakeLock != null) {
//            wakeLock.release();
//        }
//    }

}
回答
編輯回答
熟稔

clipboard.png
這里改一下試試。

2017年10月20日 20:22
編輯回答
旖襯

應(yīng)該是獲取的position不對(duì),自己多看看吧,定點(diǎn)調(diào)試一下。

2017年2月16日 20:59
編輯回答
莫小染

問(wèn)題描述的很奇怪,可以列的仔細(xì)點(diǎn):
點(diǎn)擊任意一個(gè)都播放第一個(gè)item的視頻

情況1.點(diǎn)擊事件也是第一個(gè)嗎(點(diǎn)擊第二個(gè),Toast也顯示第一個(gè)嗎)。
情況2.點(diǎn)擊事件如果時(shí)正常的是不是指的是播放器View永遠(yuǎn)都是第一個(gè)在播放。

2017年7月2日 03:21
編輯回答
貓館

???然后咧?

2017年2月17日 03:53