账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    请教一个关于动态权限和视频播放问题
    21
    0

    第一次进来获取到动态权限,拿到权限后把播放控件放到父容器播放,但是现在的情况是,第一次拿到动态权限后不能播放,需要第二次或以后进来才能播放,确定是有拿到播放url的,请问这种问题该怎么解决?想要第一次进来获取到动态权限后也能正常播放,下面是类:

    
    public class PreviewActivity extends BaseActivity  {
    
        @BindView(R.id.fl_play)
        FrameLayout flPlay;
        @BindView(R.id.et_video_title)
        EditText mTitle;
    
        private static final String TAG = "PreviewActivity";
        private String url;
        private KProgressHUD mKProgressHUD;
        private static final int PERMISSION_CODE = 0;
    
        public static void open(Context context, String url) {
            Intent intent = new Intent(context, PreviewActivity.class);
            intent.putExtra("url", url);
            context.startActivity(intent);
        }
    
        @Override
        protected View initView(Bundle savedInstanceState) {
            View view = View.inflate(this, R.layout.activity_preview, null);
            frameLayout.addView(view);
            ButterKnife.bind(this, view);
            mTvTitle.setText(getString(R.string.preview_video));
            mTvMore.setText(getString(R.string.upload));
            return view;
        }
    
        @Override
        protected void initData() {
            boolean hadPermissions = isGrantExternalRW(this);//请求动态权限
            if (hadPermissions) {
                playVideo();
            }
        }
    
        /**
         * 获取动态权限
         */
        public static boolean isGrantExternalRW(Activity activity) {
            if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M && activity.checkSelfPermission(
                    Manifest.permission.WRITE_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) {
                activity.requestPermissions(new String[]{
                        Manifest.permission.READ_EXTERNAL_STORAGE,
                        Manifest.permission.WRITE_EXTERNAL_STORAGE
                }, PERMISSION_CODE);
                return false;
            }
            return true;
        }
    
        @Override
        public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
            if (requestCode == PERMISSION_CODE) {
                Toast.makeText(this, "获取权限成功1457", Toast.LENGTH_SHORT).show();
                playVideo();
            } else if (grantResults[0] == PackageManager.PERMISSION_DENIED) {
                ToastUtil.showMessage("获取权限失败,无法预览视频");
            }
        }
    
        private void playVideo() {
            //TODO:可根据type区分上传的视频类型(剪辑,美颜或拍摄的视频)
            JZVideoPlayerStandardLoopVideo jzvdStd = new JZVideoPlayerStandardLoopVideo(this);
            flPlay.addView(jzvdStd);
            url = getIntent().getStringExtra("url");
            Log.d(TAG, "initData: 1011=" + url);
            jzvdStd.setUp(url, "", Jzvd.SCREEN_WINDOW_FULLSCREEN);
            jzvdStd.tinyBackImageView.setVisibility(View.GONE);
            jzvdStd.batteryTimeLayout.setVisibility(View.GONE); //隐藏电量和时间
            jzvdStd.fullscreenButton.setVisibility(View.GONE);  //全屏切换按钮
            jzvdStd.startVideo();
        }
    
    }
    
    0
    打赏
    收藏
    点击回答
    您的回答被采纳后将获得:提问者悬赏的 11 元积分
        全部回答
    • 0
    • 南栀. 普通会员 1楼
      502 Bad Gateway

      502 Bad Gateway


      nginx
    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部