视频无法在android中播放

时间:2020-04-11 16:08:55

标签: android kotlin android-videoview

我正在尝试在登录屏幕上播放视频。我已导入mp4视频文件。但是,当我运行此代码视频时,它不会出现在屏幕上。实际上,视频文件显示为??。标志。我需要添加其他内容来播放视频吗?

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

Java部分

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 :(得分:0)

查看来自Android的文档:https://developer.android.com/guide/topics/media/mediaplayer#java

您需要使用ranges = np.array([[0,100],[100,200],[200,300]]) values = [23, 100, 188, 223, 999] for v in values: idx = getIndex(ranges,v) print('{} in ({},{})'.format(v,ranges[idx,0],ranges[idx,1]) if idx!=-1 else '{} not found'.format(v)) 23 in (0,100) 100 in (100,200) 188 in (100,200) 223 in (200,300) 999 not found 中的MediaPlayer

onCreate

答案 1 :(得分:0)

尝试设置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();

答案 2 :(得分:0)

尝试移动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();
        }
    });