Google VR 工程Demo解析
- 把下载后的工程解压,用AndroidStudio导入,目录结构如下:
- 工程当中包含三种类型的Demo:
- 利用VR viewer 播放360全景照片和全景视频。
- 利用GvrView 和 OpenGL 实现虚拟3D
- Daydream的控制器,
由于不会OpenGL(ps:正打算学之),这次只讲VR Viewer 播放全景照片和全景视屏。
simplepanowidget 和 simplevideowidget这两个demo演示了SDK中VR View的基本功能。它们都是单个Activity的应用,分别使用VrPanoramaView和VrVideoView来在应用中嵌入播放全景照片和全景视频。
旋转手机后,可以看到分屏显示的两个部分。simplevideowidget允许用户点击屏幕去暂停和播放视屏。可以通过SeekBar来拖动视频播放。VR View 提供两种模式:全屏模式和Cardboard模式。
代码讲解
-
布局文件代码
很简单,没有什么好说的。
<com.google.vr.sdk.widgets.pano.VrPanoramaView
android:id="@+id/pano_view"
android:layout_margin="5dip"
android:layout_width="match_parent"
android:scrollbars="@null"
android:layout_height="250dip"/>
- 在Activity中重要的方法有:
panoWidgetView = (VrPanoramaView) findViewById(R.id.pano_view);
panoWidgetView.setEventListener(new ActivityEventListener());
//家在本地图片
panoWidgetView.loadImageFromBitmap(BitmapFactory.decodeStream(istr), panoOptions);
VrPanoramaView.Options 用来设置图片的格式
VrPanoramaEventListener 家在图片的时候的监听,家在成功或者加载失败
- 播放视频和显示图片类似,主要的区别在于:
<com.google.vr.sdk.widgets.video.VrVideoView
android:id="@+id/video_view"
android:layout_width="match_parent"
android:scrollbars="@null"
android:layout_height="250dip"/>
// Bind input and output objects for the view.
videoWidgetView = (VrVideoView) findViewById(R.id.video_view);
videoWidgetView.setEventListener(new ActivityEventListener());
//加载视频
loadVideoFromAsset 从asset文件夹中加载
loadVideo 根据URL去加载
eg:
if (uri == null || uri.length < 1 || uri[0] == null) {
videoWidgetView.loadVideoFromAsset("congo.mp4");
} else {
videoWidgetView.loadVideo(uri[0]);
}
其实用SDK去展示照片和视频还是很简单的,下一步OpenGL ES。(Go go go...)