网上相关资源挺多。VrVideoView不支持android7.0版本,无法正常播放。
在项目build.gradle中导入:
compile 'com.google.vr:sdk-videowidget:1.40.0'
布局代码:

<com.google.vr.sdk.widgets.video.VrVideoViewandroid:id="@+id/vr_video_view"android:layout_width="match_parent"android:layout_height="250dp"/><LinearLayoutandroid:layout_width="match_parent"android:layout_height="wrap_content"android:orientation="horizontal"><ImageViewandroid:id="@+id/play_toggle"android:layout_width="32dp"android:layout_height="32dp"android:layout_gravity="center_vertical"android:src="@mipmap/icon_pause_button"/><SeekBarandroid:id="@+id/seek_bar"style="?android:attr/progressBarStyleHorizontal"android:layout_width="0dp"android:layout_height="32dp"android:layout_weight="8"/><ImageViewandroid:id="@+id/volume_toggle"android:layout_width="32dp"android:layout_height="32dp"android:layout_gravity="center_vertical"android:src="@mipmap/icon_mute_off"/></LinearLayout>

MainActivity:

import android.content.res.Configuration;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.util.Log;
import android.view.View;
import android.widget.ImageButton;
import android.widget.ImageView;
import android.widget.SeekBar;import com.google.vr.sdk.widgets.video.VrVideoEventListener;
import com.google.vr.sdk.widgets.video.VrVideoView;import java.io.IOException;public class MainActivity extends AppCompatActivity {/*** 播放360度全景视频的的控件*/private VrVideoView vr_video_view;/*** 拖动进度的进度条*/private SeekBar seek_bar;/*** 声音开关*/private ImageView volume_toggle;/*** 播放按钮*/private ImageView play_toggle;/*** 声音是否开启*/private boolean isMuted;/*** 播放暂停*/private boolean isPlay=true;/*** 打印调试的TAG*/private final String TAG = "VrVideoView";@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);load360Video();}/*** 加载360度全景视频*/private void load360Video() {vr_video_view = (VrVideoView) findViewById(R.id.vr_video_view);
//        vr_video_view.setStereoModeButtonEnabled(false);//设置立体眼镜模式按钮不可见vr_video_view.setInfoButtonEnabled(false);//设置左侧信息原圈不可见
//        vr_video_view.setFullscreenButtonEnabled(false);//设置全屏按钮不可见vr_video_view.setTransitionViewEnabled(false);//设置将手机放入盒子中的提示取消vr_video_view.setTouchTrackingEnabled(true);//开启手触模式seek_bar = (SeekBar) findViewById(R.id.seek_bar);volume_toggle = (ImageView) findViewById(R.id.volume_toggle);play_toggle = (ImageView) findViewById(R.id.play_toggle);/**设置加载设置**/VrVideoView.Options options = new VrVideoView.Options();options.inputType = VrVideoView.Options.TYPE_MONO;/*** 设置加载监听*/vr_video_view.setEventListener(new VrVideoEventListener() {/*** 视频播放完成回调*/@Overridepublic void onCompletion() {super.onCompletion();/**播放完成后跳转到开始重新播放**/vr_video_view.seekTo(0);setIsPlay(false);Log.d(TAG, "onCompletion()");}/*** 加载每一帧视频的回调*/@Overridepublic void onNewFrame() {super.onNewFrame();seek_bar.setProgress((int) vr_video_view.getCurrentPosition());Log.d(TAG, "onNewFrame()");}/*** 点击VR视频回调*/@Overridepublic void onClick() {super.onClick();Log.d(TAG, "onClick()");}/*** 加载VR视频失败回调* @param errorMessage*/@Overridepublic void onLoadError(String errorMessage) {super.onLoadError(errorMessage);Log.d(TAG, "onLoadError()->errorMessage=" + errorMessage);}/*** 加载VR视频成功回调*/@Overridepublic void onLoadSuccess() {super.onLoadSuccess();/**加载成功后设置回调**/seek_bar.setMax((int) vr_video_view.getDuration());Log.d(TAG, "onNewFrame()");}/*** 显示模式改变回调* 1.默认* 2.全屏模式* 3.VR观看模式,即横屏分屏模式* @param newDisplayMode 模式*/@Overridepublic void onDisplayModeChanged(int newDisplayMode) {super.onDisplayModeChanged(newDisplayMode);Log.d(TAG, "onLoadError()->newDisplayMode=" + newDisplayMode);}});try {/**加载VR视频**/vr_video_view.loadVideoFromAsset("mv2.mp4", options);} catch (IOException e) {e.printStackTrace();}/**设置声音按钮点击监听**/volume_toggle.setOnClickListener(new View.OnClickListener() {public void onClick(View v) {setIsMuted(!isMuted);}});/**设置播放暂停按钮点击监听**/play_toggle.setOnClickListener(new View.OnClickListener() {public void onClick(View v) {setIsPlay(!isPlay);}});/**设置进度条拖动监听**/seek_bar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {/*** 进度条拖动改变监听* @param seekBar 拖动条* @param progress 进度* @param fromUser 是否是用户手动操作的*/@Overridepublic void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {if (fromUser) {/**调节视频进度**/vr_video_view.seekTo(progress);}}@Overridepublic void onStartTrackingTouch(SeekBar seekBar) {}@Overridepublic void onStopTrackingTouch(SeekBar seekBar) {}});}/*** 设置声音开关** @param isMuted 开关*/private void setIsMuted(boolean isMuted) {this.isMuted = isMuted;volume_toggle.setImageResource(isMuted ? R.mipmap.icon_mute_off: R.mipmap.icon_mute_on);vr_video_view.setVolume(isMuted ? 0.0f : 1.0f);}/*** 设置播放暂停** @param isPlay 播放暂停*/private void setIsPlay(boolean isPlay) {this.isPlay = isPlay;play_toggle.setImageResource(isPlay ?R.mipmap.icon_pause_button:  R.mipmap.icon_playbutton);if(isPlay){vr_video_view.playVideo();}else{vr_video_view.pauseVideo();}}@Overridepublic void onConfigurationChanged(Configuration newConfig) {super.onConfigurationChanged(newConfig);}//    public boolean isMuted() {//        return isMuted;
//    }/*** 在销毁时关闭视频,防止内存溢出*/@Overrideprotected void onDestroy() {vr_video_view.shutdown();super.onDestroy();}
}

权限:

<uses-permission android:name="android.permission.INTERNET" /><uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

Android 360全景视频播放。相关推荐

  1. Android 360全景开发(PanoramaGL)

    <pre name="code" class="java">最近公司要求做室内的360全景开发,在网上搜了些资料,基本上都是给的官网链接,自己研究了 ...

  2. 【Android开发VR实战】二.播放360°全景视频

    转载请注明出处:http://blog.csdn.net/linglongxin24/article/details/53924006 本文出自[DylanAndroid的博客] [Android开发 ...

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

    最近VR相关的新闻都刷爆了.淘宝也即将发布vr 购物 buy++.即使现在已经有太多针对虚拟现实(VR)的炒作,但这一行业仍处于初期阶段.资源少之又少,即使有,现在也不会开源的.所以对于我们这种打算要 ...

  4. unity android全景视频播放,Unity VR——全景视频播放方案

    前言: 本篇文章给大家介绍下的是Unity VR开发中全景视频播放方案,最近在做一个Unity 3D的视频类游戏,由于要应用到VR设备里面,所以需要播放的是全景视频,而非普通的平面视频. 方案列举 一 ...

  5. 基于Google的Android平台上GVR 3D全景视频播放器(支持本地文件和视频流传输)

    基于GVR(Google VR)安卓平台下的 3D全景视频播放器 Google GVR GVR简介 示例应用 源码实现 GVR关键的api调用 Gradle配置 效果图 布局 m3u8和hls协议(自 ...

  6. android 360状态栏显示,如何从Android应用程序显示360全景(How to display a 360 panorama from android application)...

    如何从Android应用程序显示360全景(How to display a 360 panorama from android application) 我想从我的Android应用程序中显示一个全 ...

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

        上次随便写着玩的  http://blog.csdn.net/ai_yong_jie/article/details/51159367   Android 全景视频播放器(VR视频播放器探索一 ...

  8. android vr播放器 开发,Android应用开发之Android VR Player(全景视频播放器)- ExoPlayer播放器MPEG-DASH视频播放...

    本文将带你了解Android应用开发之Android VR Player(全景视频播放器)- ExoPlayer播放器MPEG-DASH视频播放,希望本文对大家学Android有所帮助. Androi ...

  9. Android VR Player(全景视频播放器) [7]:视频列表的实现-网络视频

    Android VR Player(全景视频播放器) [7]:视频列表的实现-网络视频 前期准备 在之前的博文,Android VR Player(全景视频播放器) [6]:视频列表的实现-本地视频 ...

  10. Android VR Player(全景视频播放器) [6]:视频列表的实现-本地视频

    Android VR Player(全景视频播放器) [6]:视频列表的实现-本地视频 (本篇博客参考<Android第一行代码(第二版)>中关于RecyclerView的部分) 列表的实 ...

最新文章

  1. logging.Formatter 日期格式
  2. 关于公司内部域名称是否要和外部真实域名称对应的问题
  3. Flex4/Flash多文件上传(带进度条)实例分享
  4. 的it生活_在日本生活了10年的IT女,聊聊回国工作的亲身经历
  5. 几个用于序列化的代码片段
  6. mysql error writing_MySQL:Error writing file (Errcode: 28)解决方法
  7. requests由于系统缓冲区空间不足_系统C盘满了空间不足的扩容?
  8. smartdeblur(图片模糊处理工具) v2.2
  9. cvs数据格式 gps_CSV、TXT 和 GPX 文件
  10. 《二十世纪西方思想文化潮流》笔记--导论5--理性的后果1
  11. Java入门项目——读书管理系统
  12. H265摄像头如何实现网页直播
  13. 帕斯卡计算机介绍,帕斯卡计算机:第一台被写入百科全书的计算机
  14. 各开发者android平台的注册及上传方法汇总
  15. [Error] expected ‘}‘ at end of input处理办法
  16. 如何从svn上下载文件
  17. 海康威视错误代码说明(三)(错误代码:31~46)
  18. android录制mp3 github,GitHub - understanding/AndroidMP3Recorder: 为Android提供MP3录音功能[持续维护版]...
  19. 直播源代码,android 时间戳转换
  20. C++ 百万并发网络通信引擎架构与实现视频课程

热门文章

  1. 智能校对的技术原理和实践
  2. 【信号与系统】指数信号与正弦信号
  3. Java工程师成神之路 | 2020正式版
  4. autoit3转换php,autoit入门基础教程——字符串与变量转换.pdf
  5. ffmpeg合并mp4脚本
  6. 3D游戏模型师的日常工作内容
  7. 《Machine Learning in Action》—— 女同学问Taoye,KNN应该怎么玩才能通关
  8. Win10 如何关闭烦人的任务栏广告,驱动人生广告,2345广告
  9. 相对定位、绝对定位、固定定位
  10. 2017-2018-2 20155314《网络对抗技术》Exp4 恶意代码分析