我正在尝试在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
答案 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();