Android VR 视屏

news/2024/11/24 9:37:52/
Android VR 视屏
效果图


谷歌的VR:

虚拟实境(英语:virtual reality,缩写为VR),简称虚拟技术,也称虚拟环境,是利用电脑模拟产生一个三维空间的虚拟世界,提供用户关于视觉等感官的模拟,让用户感觉仿佛身历其境,可以及时、没有限制地观察三维空间内的事物。用户进行位置移动时,电脑可以立即进行复杂的运算,将精确的三维世界视频传回产生临场感。该技术集成了计算机图形、计算机仿真、人工智能、感应、显示及网络并行处理等技术的最新发展成果,是一种由计算机技术辅助生成的高技术模拟系统。

VR软件:爱美艺家VR,房总管VR,旅行VR,VR科学馆,百度VR,腾讯炫境VR

功能:增强虚拟现实
VR资源下载
Google VR 技术 官网:点击打开链接(需要翻墙)
android VR 资源下载网址:点击打开链接
android VR API:点击打开链接(需要翻墙)
VR视频步骤
1.搭建VR开发环境,添加资源,修改Gradle,清单文件等
打开android VR 资源下载网址下载下图中的文件

下载好的是一个压缩包,解压压缩包得到下图中的文件

VR视屏需要导入VR资源的common,commonwidget,videowidget包

在Studio中导入,选择File>New>import Project进行导入


打开Studio选择project目录下的app>src>main,在main文件中新建一个Directory包必须命名为assets,将需要播放的视屏放进包中,视屏名全小写

在AndroidManifest.xml清单文件中添加: android :largeHeap= "true"
因为使用 VR 的资源很消耗内存,所以我们为了避免 OOM 的问题, 要把警报权限提高,从 192 提高到 512m

打开build.gradle文件,在最底下添加如下代码
compile 'com.google.android.exoplayer:exoplayer:r1.5.10'
compile 'com.google.protobuf.nano:protobuf-javanano:3.0.0-alpha-7'
并修改版本号为19: minSdkVersion 19
如果不修改会报下图中的错误,这个错是说最低版本不能低于16,故要修改版本号,最好修改到19

在Studio中使用快捷键:control+alt+shift+s打开Project Structure按下图步骤关联上面导入的三个包

打开activity_main.xml布局文件,在布局文件中输入<Vr出现以下控件就说明关联成功了
<com.google.vr.sdk.widgets.video.VrVideoView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content">
</com.google.vr.sdk.widgets.video.VrVideoView>

到这里环境配置就完成了
2.完成项目XML布局
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    tools:context="com.example.cxy.vrvideo.MainActivity"><com.google.vr.sdk.widgets.video.VrVideoView
        android:id="@+id/vr_video"
        android:layout_width="match_parent"
        android:layout_height="250dp"></com.google.vr.sdk.widgets.video.VrVideoView><android.support.v7.widget.AppCompatSeekBar
        android:id="@+id/seekbar"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"/><TextView
        android:id="@+id/textview"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textSize="20dp"/></LinearLayout>
3.自定义AsyncTask,读取显示VR视频
package com.example.cxy.vrvideo;import android.os.AsyncTask;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.SeekBar;
import android.widget.TextView;import com.google.vr.sdk.widgets.video.VrVideoView;import java.io.IOException;public class MainActivity extends AppCompatActivity {private VrVideoView vr_video;private SeekBar seek_bar;private TextView tv_progress;private VideoLoadTask mVideoLoadTask;@Override
    protected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);//进行空间的初始化
        vr_video = (VrVideoView) findViewById(R.id.vr_video);seek_bar = (SeekBar) findViewById(R.id.seekbar);tv_progress = (TextView) findViewById(R.id.textview);//
        mVideoLoadTask = new VideoLoadTask();mVideoLoadTask.execute("video.mp4");}//由于VR资源数据量很大,获取需要时间,故把加载视屏放到子线程中进行,主线程来显示,可以使用异步任务AsyncTaskEventBus技术完成
    //自定义一个类继承AsyncTask,只使用我们需要的方法,完成在子线程加载图片资源,在主线程显示
    private class VideoLoadTask extends AsyncTask<String, Void, Void> {//该方法在子线程运行,从本地文件中把资源加载到内存中
        @Override
        protected Void doInBackground(String... strings) {//创建VrVideoView.Options对象,决定VR是普通效果,还是立体效果
            VrVideoView.Options options = new VrVideoView.Options();//立体模式
            options.inputType = VrVideoView.Options.TYPE_STEREO_OVER_UNDER;//处理加载的视屏格式
            //FORMAT_DEFAULT:默认格式(sdcardassets)
            //FORMAT_HLS:流媒体数据模式(直播)
            options.inputFormat = VrVideoView.Options.FORMAT_DEFAULT;try {//重点
                //提示:(视频加载的方法还做了把视频读取到内存中的操作,所以它会有一个矛盾,
                // 调用该方法是在主线程还是在子线程(一般我们放在子线程去调用该方法))
                //使用VR控件对象,从资产目录加载数据,显示效果
                // 参数1.String对象 2.VrVideoView.Options对象,决定显示的效果
                vr_video.loadVideoFromAsset(strings[0], options);} catch (IOException e) {e.printStackTrace();}return null;}}//因为VR很占用内存,所以当界面进入OnPause状态,暂停VR视图显示,进入OnResum状态,继续VR视图显示进入OnDestroy状态杀死Vr

    //当失去焦点时,回调
    @Override
    protected void onPause() {super.onPause();//暂停渲染和显示
        vr_video.pauseRendering();}//当获取焦点时,回调
    @Override
    protected void onResume() {super.onResume();//继续渲染和显示
        vr_video.resumeRendering();}//Activity毁掉时,回调
    @Override
    protected void onDestroy() {super.onDestroy();//关闭渲染和显示,回调
        vr_video.shutdown();//在退出Activity,如果异步任务没有取消,则取消
        if (mVideoLoadTask != null) {if (!mVideoLoadTask.isCancelled()) {mVideoLoadTask.cancel(true);}}}
}
到这里VR视屏显示就完成了,如有疑问请留言!

http://www.ppmy.cn/news/467206.html

相关文章

拍vr只需要手机了

拍vr只需要手机了 野外场景&#xff1a; 绕着手机一圈&#xff0c;拍摄8张照片&#xff0c;就可以生成一个全景图片。 长廊场景&#xff1a;沿着几个点位&#xff0c;拍摄出几个全景图片&#xff0c;就可以浏览&#xff0c;还有三维模型也可以出来。 博主介绍了一个比较好的…

一、初识GVR ---- Android VR视频/Google VR for Android /VR Pano/VR Video

原文链接&#xff1a; http://blog.csdn.net/qq_24889075/article/details/52118633 http://www.jianshu.com/p/09c0822b9d1e 业余时间充足&#xff0c;于是想弄点自己的东西&#xff0c;找来找去还是回到当初感兴趣的VR。目前好像没有太多关于VR方面的教程&#xff0c;于是…

vr二维码_VR小花看看app

小花看看是一款主打性能的VR视频播放器&#xff0c;支持影院&#xff0c;180度&#xff0c;360度模式&#xff0c;同时也支持绝大多数的视频&#xff0c;音频字幕格式 VR小花看看特点 1.最专业的反畸变算法。可以自动完成针对不同手机屏幕的畸变优化。无论什么手机&#xff0c;…

3d,全景和vr视频的区别

3D视频&#xff1a; 通过左右画面给予人眼重合的立体感&#xff1b; 可以通过普通的摄像机拍摄&#xff0c;然后转换压制成适合VR头戴显示器、VR手机盒子看的视频格式&#xff1b; 技术门槛最低。 全景视频&#xff1a; 通过360全景摄像机拍摄&#xff1b; 需要专业的后期团队对…

AR和VR是什么,浅看一下吧

文章目录 一、小序二、VR是什么&#xff1f;三、AR是什么&#xff1f;四、AR和VR的主要区别&#xff1f;五、总结 一、小序 我在学校有电子实习这一门课&#xff0c;目前已经上到了第二部分&#xff0c;模块化智能小车设计&#xff0c;课堂上老师要求讲解一下AR和VR的区别&…

二、VR全景图显示器开发 ---- Android VR视频/Google VR for Android /VR Pano/VR Video

原文地址&#xff1a; http://blog.csdn.net/qq_24889075/article/details/52128463 http://www.jianshu.com/p/104251a3153d 这篇看下SimpleVrPanorama这个栗子 SimpleVrPanorama 其实这篇应该写SimpleVrPanorama和simplevideowidget 两个&#xff0c;但是由于篇幅过长就分…

Android 全景视频播放器(VR视频播放器探索)

最近VR相关的新闻都刷爆了。淘宝也即将发布vr 购物 buy。即使现在已经有太多针对虚拟现实(VR)的炒作&#xff0c;但这一行业仍处于初期阶段。资源少之又少&#xff0c;即使有&#xff0c;现在也不会开源的。所以对于我们这种打算要走前沿的程序员只能硬着头皮探索了。我们公司也…

Android手机与vr交互暴风魔镜3D效果显示原理

首先讲到VR&#xff0c;谈谈个人体会&#xff0c;半年前看到淘宝上的vr眼镜盒为了促销标题图片都是非常性感的&#xff0c;还有海量你懂得资源。到最近在淘宝搜索vr暴风魔镜都正规了&#xff0c;而且销售量庞大 还有新闻上很多vr的科技前沿资讯可以看出来。vr技术随时间的流逝…