pili-engineering / PLDroidPlayer

PLDroidPlayer 是七牛推出的一款免费的适用于 Android 平台的播放器 SDK,采用全自研的跨平台播放内核,拥有丰富的功能和优异的性能,可高度定制化和二次开发。
https://developer.qiniu.com/pili/sdk/1210/the-android-client-sdk
4.54k stars 956 forks source link

播放器默认获取了焦点,在TV项目上不是很友好 #1268

Open uni-cstar opened 2 years ago

uni-cstar commented 2 years ago
//其中PLBaseVideoView中初始化的时候默认获取了焦点
protected void initVideoView(Context context) {
        this.mRenderView = this.getRenderView();
        this.mRenderView.setRenderCallback(this.mRenderCallback);
        LayoutParams lp = new LayoutParams(-1, -1, 17);
        this.mRenderView.getView().setLayoutParams(lp);
        this.addView(this.mRenderView.getView());
        this.setFocusable(true);
        this.setFocusableInTouchMode(true);
        this.requestFocus();
        this.mTargetState = PlayerState.IDLE;
    }

上述代码在播放器初始化的时候,内部默认获取了焦点,导致在TV开发中出现焦点预期以外的事情,比如用户当前默认选中一个按钮,此时banner中使用了播放器,播放器初始化默认获取了焦点,这个焦点行为并没有经过用户操作,感觉不是很友好。

看得出这个行为的意图跟videoview的行为相似,也就是获取焦点之后响应遥控器按键行为,显示或隐藏控制栏。但这个设计总感觉有点先入为主,如果非全屏下的播放器使用,这个行为是很迷惑人的