Android studio-视频活动

问题描述 投票:0回答:1

我设置了一个播放内部存储视频的应用。您可以从列表视图中选择视频,但我想从URL而不是内部源将视频添加到列表视图。现在的代码如下所示:

 private void fillVideosList(){
        videosList.clear();
        addVideosFrom(String.valueOf(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_MOVIES)));
        addVideosFrom(String.valueOf(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS)));
        addVideosFrom(String.valueOf(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DCIM)));

另外一件事。

退出视频后,我无法返回上一个活动。在退出视频并按“后退”按钮后,它不会带我上一次活动,而是带我再次进入视频。

视频控制器的代码如下:

 public VideoController(Context context){
        super(context);
        this.context = context;
        FrameLayout.LayoutParams params = (FrameLayout.LayoutParams)this.getLayoutParams();
        DisplayMetrics metrics = getContext().getResources().getDisplayMetrics();
        float dp = 50f;
        float fpixels = metrics.density * dp;
        int pixels = (int) (fpixels + 0.5f);
        params.bottomMargin = pixels;
        //params.rightMargin = pixels;
        this.setLayoutParams(params);
    }

    @Override
    public void setAnchorView(View view){
        super.setAnchorView(view);
        ImageButton exitButton = new ImageButton(context);
        exitButton.setImageDrawable(getResources().getDrawable((R.drawable.exit)));
        exitButton.setBackgroundColor(Color.BLACK);
        FrameLayout.LayoutParams params = new FrameLayout.LayoutParams(LayoutParams.WRAP_CONTENT,
                LayoutParams.WRAP_CONTENT);
        params.gravity = Gravity.RIGHT;
        addView(exitButton, params);
        exitButton.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent intent = new Intent(context, VideoPlayer.class);
                intent.putExtra((VIDEO_ACTIVITY_INTENT), "showContinueWatching");
                context.startActivity(intent);

android
1个回答
0
投票

原因是MediaController在以下代码中消耗了KEYCODE_BACK事件,如果您想将KEYCODE_BACK事件正常发送到Activity,您要做的就是重写MediaController的dispatchKeyEvent方法,按以下方式处理:

@Override
public boolean dispatchKeyEvent(KeyEvent event) {
    if (event.getKeyCode() == KeyEvent.KEYCODE_BACK) {
        return false; 
    }
    return super.dispatchKeyEvent(event);
}
最新问题
© www.soinside.com 2019 - 2024. All rights reserved.