用SurfaceView播放视频时,遇到的出声音但前面会黑频一段时间,求解释。
下面是主要的代码。点击开始会出声音 ,视频开始播放,但是黑频。待会儿(可能要几秒到几十秒不等)就会出画面。 但是我加入了Thread.sleep()之后就没这个问题了(当时以为这样可以让界面刷新,但是不确定),试求解释。
//初始化
mSurfaceHolder01 = mSurfaceView01.getHolder();
mSurfaceHolder01.addCallback(this);
mSurfaceHolder01.setFixedSize(300, 200);
//按播放开始播放
mPlay.setOnClickListener(new ImageButton.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
if (checkSDCard()) {
playVideo(strVideoPath);
}
}
});
//播放方法
private void playVideo(String strPath) {
mMediaPlayer01 = new MediaPlayer();
mMediaPlayer01.setAudioStreamType(AudioManager.STREAM_MUSIC);
mMediaPlayer01.setDisplay(mSurfaceHolder01);
try {
mMediaPlayer01.setDataSource(strPath);
} catch (Exception e) {
mTextView01.setText("setDataSource Exception:" + e.toString());
}
try {
mMediaPlayer01.prepare();
} catch (Exception e) {
mTextView01.setText("prepare Exception:" + e.toString());
}
mMediaPlayer01.start();
// try {
// Thread.sleep(100);
// } catch (InterruptedException e) {
// TODO Auto-generated catch block
// e.printStackTrace();
// }
bIsReleased = false;
mTextView01.setText("play in..");
mMediaPlayer01
.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
@Override
public void onCompletion(MediaPlayer mp) {
// TODO Auto-generated method stub
mTextView01.setText("play over...");
}
});
...全文
相关推荐
SurfaceView+MediaPlayer视频播放器支持选集,试看(拖进度条),声音,亮度,弹幕,横竖屏切换。
SurfaceView+MediaPlayer打造万能播放器,支持选集功能,拖动进度条试看以及重新试看,声音亮度调节及横竖屏重力切换,弹幕功能,方便扩展如锁屏功能等。
自定义Dialog中播放视频
自定义一个Dialog中播放视频,主要用到SurfaceView进行播放SDcard中的视频文件。可以对播放进行简单的操作,如:播放、暂停、进度条显示、推拽。另外需要的功能完全可以根据自己的需求添加。
android录制视频及播放Demo
这是android平台的一个利用MediaRecorder录制视频及播放的简单Demo,可以用于学习。
ExoPlayer-SurfaceView
1.Exoplayer视频播放,支持横竖屏播放。 2.在build.gradle文件中编译“com.google.android.exoplayer:exoplayer:rX.XX” 3.使用SurfaceView
Android强制设定横屏时,SurfaceView一直黑屏
本文主要介绍了Android强制设定横屏时,SurfaceView一直黑屏的方法。具有一定的参考作用,下面跟着小编一起来看下吧


其他技术讨论专区
