Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/191.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Can';t播放此视频以查看视频_Java_Android_Xml_Android Videoview - Fatal编程技术网

Java Can';t播放此视频以查看视频

Java Can';t播放此视频以查看视频,java,android,xml,android-videoview,Java,Android,Xml,Android Videoview,我知道这已经被问过很多次了。我已经尝试过前面提到的许多解决方案,比如提高API级别、更改android设备、更改视频、更改视频格式。每次都是相同的错误。我使用的是Nexus6p,运行的是Oreo8.1,最低的API类似于Marshmellow。 xml代码: <VideoView android:background="@color/colorPrimaryDark" android:layout_height="600dp"

我知道这已经被问过很多次了。我已经尝试过前面提到的许多解决方案,比如提高API级别、更改android设备、更改视频、更改视频格式。每次都是相同的错误。我使用的是Nexus6p,运行的是Oreo8.1,最低的API类似于Marshmellow。 xml代码:

<VideoView
            android:background="@color/colorPrimaryDark"
            android:layout_height="600dp"
            android:layout_width="fill_parent"
            android:id="@+id/VideoView" />

        <Button
            android:text="@string/play"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:onClick="onButtonClick"
            android:background="@color/colorPrimary"
            android:id="@+id/button"/>
我也尝试过这段代码:

VideoView videoView = (VideoView)findViewById(R.id.VideoView);
        MediaController mediaController = new MediaController(this);
         mediaController.setAnchorView(videoView);
        videoView.setMediaController(mediaController);

        videoView.setVideoPath("vectorvideo");

        videoView.start();

检查何时调用您的方法

onButtonClicked(视图v)

尝试这段代码&首先尝试不使用按钮单击,如果它有效,然后在按钮单击时调用它。我正在我的活动中使用它,它工作得很好

String basePath = "android.resource://" + getPackageName() +"/"+"/raw/";
Intent intent = getIntent();
String videoName = intent.getStringExtra(VIDEO_NAME);
final boolean videoRepeat = intent.getBooleanExtra(VIDEO_REPEAT, false);
Uri videoUri = Uri.parse(basePath+videoName);
VideoView videoPlayer = (VideoView) findViewById(R.id.videoPlayer);
MediaController mc = new MediaController(this);
mc.setAnchorView(videoPlayer);
mc.setMediaPlayer(videoPlayer);
mc.setVisibility(View.GONE);
videoPlayer.setMediaController(mc);
videoPlayer.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
    @Override
    public void onCompletion(MediaPlayer mp) {
        if(!videoRepeat){
            finish();
        }
    }
});
videoPlayer.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
    @Override
    public void onPrepared(MediaPlayer mp) {
        if(videoRepeat) {
            mp.setLooping(true);
        }else{
            mp.setLooping(false);
        }
    }
});
videoPlayer.setVideoURI(videoUri);
videoPlayer.start();

视频必须采用受支持的格式(3gp、wmv、mp4),并在其文件名中使用小写、数字、下划线和点进行命名,同样:Video_file.mp4

而不是

String videopath = "android.resource://com.example.nisat.favor"+R.raw.anime;
试一试

使用此代码
在AndroidManifest.xml中提及权限
以及MainActivity.class中的这行代码
String videopath=“android。resource://com.example.cloudanalogy.play_video/“+R.raw.a;
Uri vidUri=Uri.parse(videopath);
setVideoURI(videouri);
videoView.start();
MediaController MediaController=新的MediaController(此);
mediaController.setAnchorView(视频视图);
videoView.setMediaController(mediaController);
您没有使用反斜杠(/)设置正确的路径字符串videopath=“android。resource://com.example.nisat.favor/“+R.raw.anime;
String videopath = "android.resource://com.example.nisat.favor"+R.raw.anime;
String videopath = "android.resource://" + getPackageName() + "/" + R.raw.anime;
    use this code 
mention permission in AndroidManifest.xml

    <uses-permission android:name="android.permission.INTERNET"></uses-permission>

and this line of code inside the MainActivity.class

            String videopath = "android.resource://com.example.cloudanalogy.play_video/"+R.raw.a;
            Uri vidUri = Uri.parse(videopath);
            videoView.setVideoURI(vidUri);
            videoView.start();
            MediaController mediaController = new MediaController(this);
            mediaController.setAnchorView(videoView);
            videoView.setMediaController(mediaController);