Видео не воспроизводится в android - PullRequest
0 голосов
/ 11 апреля 2020

Я пытаюсь воспроизвести видео на экране входа в систему. Я импортировал MP4 видео файл. Но когда я запускаю этот код, видео не появляется на экране. На самом деле этот видео файл показывает с ?? подписать. Нужно ли добавлять что-либо еще для воспроизведения видео?

<VideoView
  android:id="@+id/videoView1"
  android:layout_width="match_parent"
  android:layout_height="match_parent"
  />

Java part

public VideoView videoView;
    public MediaPlayer mediaPlayer;

    @OnClick(R.id.email_sign_in_button)
    void delegateLogin() {
        progressBar.setVisibility(View.VISIBLE);
       loginPresenter.doLogin(usernameInput.getText().toString(), passwordInput.getText().toString());
    }

    @OnClick(R.id.register_now_button)
    void registerNow(){
        loginPresenter.doOpenRegisterScreen(this);
    }

    @OnClick(R.id.forgot_password_button)
    void forgotPassword(){
        loginPresenter.doOpenForgotPasswordScreen(this);
    }


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_login);
        ButterKnife.bind(this);

        videoView=(VideoView)findViewById(R.id.videoView1);

        Uri uri= Uri.parse("android.resource://"
        +getPackageName()
        +"/"
        +R.raw.mt_launch_screen);

        videoView.setVideoURI(uri);
       // videoView.requestFocus();
        videoView.start();

        videoView.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
            @Override
            public void onPrepared(MediaPlayer mediaPlayer) {
                mediaPlayer.setLooping(true);
               // mediaPlayer.start();
            }
        });

Ответы [ 3 ]

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

Попробуйте установить Mediacontroller

String video_url = "android.resource://" + context.getPackageName() + 
"/" + R.raw.mt_launch_screen;
final VideoView videoView = findViewById(R.id.dialog_video);
Uri videoUri = Uri.parse(video_url);
MediaController mediaController= new MediaController(context);
mediaController.setAnchorView(videoView);
videoView.setMediaController(mediaController);
videoView.setVideoURI(videoUri);
videoView.requestFocus();
videoView.start();
0 голосов
/ 11 апреля 2020

попробуйте переместить videoView.start()

    videoView.setVideoURI(uri);
    // videoView.requestFocus();
    // videoView.start(); /* don't start it if you setOnPrepared? */

    videoView.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
        @Override
        public void onPrepared(MediaPlayer mediaPlayer) {
            videoView.start(); //Start here
            mediaPlayer.setLooping(true);
            // mediaPlayer.start();
        }
    });
0 голосов
/ 11 апреля 2020

Глядя на документацию от Android: https://developer.android.com/guide/topics/media/mediaplayer#java

Вам нужно что-то сделать, используйте MediaPlayer в вашем onCreate

Uri uri = Uri.parse("android.resource://" + getPackageName() + "/" + R.raw.mt_launch_screen);
mediaPlayer = MediaPlayer.create(context, uri);
mediaPlayer.start(); // no need to call prepare(); create() does that for you
...