Android Studio"无法播放此视频

时间:2018-02-09 00:36:31

标签: android android-studio

我正在尝试在Android Studio模拟器中播放视频。

但是,它显示对话框无法播放此视频

我在Stackoverflow上阅读了很多类似的问题,但没有一个能解决它。

希望有人能提供帮助!

提前谢谢。

public class MainActivity extends AppCompatActivity {



    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

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

        videoView.setVideoPath("android.resource://" + getPackageName() + "/" + R.raw.demo);

        //MediaController mc = new MediaController(this);

        //mc.setAnchorView(videoView);

        //videoView.setMediaController(mc);

        videoView.start();
    }
}

我的日志显示

02-09 01:19:41.811 8704-8704/? W/art: Before Android 4.1, method int android.support.v7.widget.ListViewCompat.lookForSelectablePosition(int, boolean) would have incorrectly overridden the package-private method in android.widget.ListView
02-09 01:19:41.817 8704-8704/? D/MediaPlayer: getMetadata
02-09 01:19:41.842 8704-8719/? E/MediaPlayer: error (1, -38)
02-09 01:19:41.845 8704-8718/? E/MediaPlayer: error (1, -38)
02-09 01:19:41.847 8704-8704/? E/MediaPlayer: Error (1,-38)
02-09 01:19:41.848 8704-8704/? D/VideoView: Error: 1,-38
02-09 01:19:41.880 8704-8704/? E/MediaPlayer: Error (1,-38)
02-09 01:19:41.880 8704-8704/? D/VideoView: Error: 1,-38

3 个答案:

答案 0 :(得分:0)

在开始播放视频之前,您是否尝试过等待视频视图准备好了?

videoView.setOnPreparedListener(mediaPlayer -> videoView.start());

答案 1 :(得分:0)

试试这个

MediaController controller = new MediaController(this);
    controller.setAnchorView(videoView);
    controller.setMediaPlayer(videoView);
    videoView.setMediaController(controller);
    videoView.setVideoURI(Uri.parse(yourVideoPath));

    videoView.setOnPreparedListener(mp -> {
        ViewGroup.LayoutParams lp = videoView.getLayoutParams();
        float videoWidth = mp.getVideoWidth();
        float videoHeight = mp.getVideoHeight();
        float viewWidth = videoView.getWidth();
        lp.height = (int) (viewWidth * (videoHeight / videoWidth));
        videoView.setLayoutParams(lp);
        playVideo();
      //  if (!videoView.isPlaying()) optional
        videoView.start();
    });

答案 2 :(得分:0)

试试这段代码:

    this.vidView = (VideoView) findViewById(R.id.myVideo);
    this.vidView.setVideoURI(Uri.parse("android.resource://" + getPackageName() + "/" +R.raw.numbers));
    MediaController vidControl = new MediaController(this);
    vidControl.setAnchorView(this.vidView);
    this.vidView.setMediaController(vidControl);
    this.vidView.start();