android使用SurfaceView播放网络视频

醉生丶梦死 2015-10-05 05:39:07
videoUrl = Urls.VIDEO_URL + entity.getVideo_url();
surfaceView = vHolder.surfaceView;
surfaceHolder = surfaceView.getHolder();
surfaceHolder.setFixedSize(320, 220);
surfaceHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);

vHolder.playVide_ibtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
vHolder.surfaceView.setVisibility(View.VISIBLE);
mediaPlayer.start();
}
});
return convertView;
}
@Override
public void surfaceCreated(SurfaceHolder holder) {
//必须在surface创建后才能初始化MediaPlayer,否则不会显示图像
mediaPlayer=new MediaPlayer();
mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
mediaPlayer.setDisplay(surfaceHolder);
//设置显示视频显示在SurfaceView上
try {
mediaPlayer.setDataSource(context, Uri.parse(videoUrl));
mediaPlayer.prepareAsync();
} catch (Exception e) {
e.printStackTrace();
}
}
@Override
public void surfaceChanged(SurfaceHolder holder, int format, int width, int height) {

}

@Override
public void surfaceDestroyed(SurfaceHolder holder) {
if(mediaPlayer.isPlaying()){
mediaPlayer.stop();
}
mediaPlayer.release();
//Activity销毁时停止播放,释放资源。不做这个操作,即使退出还是能听到视频播放的声音


}


就是报空指针异常,我其实可以想象到mediaPlayer没有在前面被初始化会报空指针异常,但是网上就是这么说的,必须在oncreate里面初始化,不然的话下载出来的数据是没有的,然后我就在前面初始化了,但是surfaceView就只出现个黑给的背景什么没有,在这里希望大神能帮帮我,我就是想实现想QQ空间那样的效果一样,别人能发表视频,当我们点击的时候我们就可以播放视频,
...全文
167 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

80,350

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧