用SurfaceView播放视频时,遇到的出声音但前面会黑频一段时间,求解释。

weixin_38069603 weixin_38069603 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
下面是主要的代码。点击开始会出声音 ,视频开始播放,但是黑频。待会儿(可能要几秒到几十秒不等)就会出画面。 但是我加入了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..."); } });
...全文

相关推荐

评论 1
收藏 已收藏
分享
返回顶部