视频无法在 android 中播放

Posted

技术标签:

【中文标题】视频无法在 android 中播放【英文标题】:Video is not playing in android 【发布时间】:2020-04-11 16:08:55 【问题描述】:

我正在尝试在我的登录屏幕上播放视频。我已经导入了 mp4 视频文件。但是当我运行这段代码时,视频并没有出现在屏幕上。事实上,视频文件显示为 ??符号。播放视频是否需要添加其他内容?

<VideoView
  android:id="@+id/videoView1"
  android:layout_
  android:layout_
  />

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

【问题讨论】:

【参考方案1】:

尝试设置媒体控制器

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

【讨论】:

都试过了都不行..我需要添加任何库或权限吗? MediaPlayerNative: error (1, -2147483648) 一种黑色布局正在制作,但没有视频【参考方案2】:

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

【讨论】:

【参考方案3】:

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

您需要使用onCreate 中的MediaPlayer 做某事

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

【讨论】:

都试过了都不行..我需要添加任何库或权限吗? 看看这个tutorial 它准确地解释了你想要做什么

以上是关于视频无法在 android 中播放的主要内容,如果未能解决你的问题,请参考以下文章

嵌入的 youtube 视频无法在某些 Android 设备中播放

在android中使用listview无法正常播放视频

无法在 Xamarin Android 上播放本地视频

如何在 android 的 videoview 中播放 .mp4 视频?

android 4.0 webview 无法播放视频

Android:无法播放 mp4 视频