android-MediaPlayer视频问题
作者:互联网
我花了大约2个小时来尝试使它生效.我从来没有让MediaPlayer播放视频很幸运.我在这里做错了什么?第一次播放时仅播放音频,不播放视频.然后,当我尝试重新设置setDataSource时,第二次出现IllegalStateException.我试过在onCompletion中不调用stop()和release(),而是在播放前尝试调用reset().我只是得到了不同的StateExceptions(0,64,128)我已经用尽了想法.
private void playVideo() {
mMediaPlaying = true;
sv.setVisibility(View.VISIBLE); //surfaceview
try {
if(mp.isPlaying()) {
mp.stop();
mp.reset();
}
mp.setDisplay(sh); //surfaceholder
mp.setOnCompletionListener(this);
mp.setOnPreparedListener(this);
mp.setDataSource(getBaseContext(), Uri.parse("android.resource://" + getPackageName() + "/" + R.raw.test));
mp.prepare();
//mp.start();
} catch (IllegalArgumentException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IllegalStateException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SecurityException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
@Override
public void onPrepared(MediaPlayer mp) {
Log.d("", "mp prepared");
mp.start();
}
@Override
public void onCompletion(MediaPlayer arg0) {
sv.setVisibility(View.GONE);
mp.stop();
mp.release();
mMediaPlaying = false;
Log.d("", "Done playing media");
}
解决方法:
如果要播放视频,可以使用VideoView.
您可以使用MediaController来控制视频,例如播放,暂停,快进和快退.
例如,检查此链接.
http://android-coding.blogspot.in/2011/03/using-videoview-to-play-mp4-from-sdcard.html
标签:android-mediaplayer,android 来源: https://codeday.me/bug/20191201/2082690.html