Java Can';t播放此视频以查看视频
我知道这已经被问过很多次了。我已经尝试过前面提到的许多解决方案,比如提高API级别、更改android设备、更改视频、更改视频格式。每次都是相同的错误。我使用的是Nexus6p,运行的是Oreo8.1,最低的API类似于Marshmellow。 xml代码: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"
<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);