Android - видео активность - PullRequest
       1

Android - видео активность

0 голосов
/ 17 апреля 2020

Я установил приложение, которое воспроизводит видео из внутреннего хранилища. Вы можете выбрать видео из списка, но я хотел бы добавить видео в список из 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)));

Еще одна вещь.

У меня проблема с возвратом к предыдущей активности после выхода из видео. После того, как я выхожу из видео и нажимаю pu sh кнопку «Назад», она не возвращает меня к предыдущей активности, она снова возвращает меня к видео.

Код для видеоконтроллера выглядит следующим образом:

 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);

1 Ответ

0 голосов
/ 17 апреля 2020

Причина в том, что MediaController использует событие KEYCODE_BACK в приведенных ниже кодах, если вы хотите, чтобы событие KEYCODE_BACK отправлялось в Activity нормально, все, что вам нужно сделать, это переопределить метод dispatchKeyEvent MediaController, иметь дело с этим:

@Override
public boolean dispatchKeyEvent(KeyEvent event) {
    if (event.getKeyCode() == KeyEvent.KEYCODE_BACK) {
        return false; 
    }
    return super.dispatchKeyEvent(event);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...