All Projects → Martin20150405 → Pano360

Martin20150405 / Pano360

Licence: mit
Pure Java library to play 360 degree panorama video / photo (VR video) on Android. Using OpenGL ES 2.0 -安卓全景视频/图片播放器

Programming Languages

java
68154 projects - #9 most used programming language

Projects that are alternatives of or similar to Pano360

Mpc Hc
MPC-HC's main repository. For support use our Trac: https://trac.mpc-hc.org/
Stars: ✭ 3,567 (+566.73%)
Mutual labels:  media-player
Kingfisher
A lightweight, pure-Swift library for downloading and caching images from the web.
Stars: ✭ 19,512 (+3547.1%)
Mutual labels:  filters
Philter
Philter is a JS plugin giving you the power to control CSS filters with HTML attributes.
Stars: ✭ 445 (-16.82%)
Mutual labels:  filters
Dorsvr
Go RTSP Streaming Server
Stars: ✭ 331 (-38.13%)
Mutual labels:  media-player
Python Multiple Image Stitching
Implementation of multiple image stitching
Stars: ✭ 360 (-32.71%)
Mutual labels:  panorama
Kawaii Player
Multimedia player, media library manager and portable media server with PC-To-PC casting feature.
Stars: ✭ 397 (-25.79%)
Mutual labels:  media-player
Metalscope
Metal-backed 360° panorama view for iOS
Stars: ✭ 293 (-45.23%)
Mutual labels:  panorama
Playerdemo
一个视频播放器,开源版 potplayer ,用于总结播放器开发技术。
Stars: ✭ 491 (-8.22%)
Mutual labels:  media-player
Cameraview
📸 A well documented, high-level Android interface that makes capturing pictures and videos easy, addressing all of the common issues and needs. Real-time filters, gestures, watermarks, frame processing, RAW, output of any size.
Stars: ✭ 4,137 (+673.27%)
Mutual labels:  filters
Jmc
jmc - a new macOS media organizer
Stars: ✭ 432 (-19.25%)
Mutual labels:  media-player
Mpc Qt
Media Player Classic Qute Theater
Stars: ✭ 345 (-35.51%)
Mutual labels:  media-player
Easyplayer
An elegant, simple, fast RTSP/RTMP/HLS/HTTP Player.EasyPlayer support RTSP(RTP over TCP/UDP)version& RTMP version & Pro version,cover all kinds of streaming media!EasyPlayer是一款精炼、高效、稳定的流媒体播放器,分为RTSP版、RTMP版和Pro版本,支持各种各样的流媒体音视频播放!
Stars: ✭ 358 (-33.08%)
Mutual labels:  media-player
Mediaplayer Extended
Android MediaPlayer API-compatible media player library with exact seek and DASH support
Stars: ✭ 406 (-24.11%)
Mutual labels:  media-player
Mpv Easy Player
MPV-EASY Player - A movie player based on mpv
Stars: ✭ 324 (-39.44%)
Mutual labels:  media-player
Artplayer
Kotlin实现的视频播放器,将MediaPlayer与VideoView解耦合,支持切换播放器内核(如ExoPlayer和ijkPlayer),支持自定义控制视图,提供MediaPlayerManager实现全屏模式,小屏幕模式等。
Stars: ✭ 471 (-11.96%)
Mutual labels:  media-player
Filters.css
CSS only library to apply color filters.
Stars: ✭ 318 (-40.56%)
Mutual labels:  filters
Android Openslmediaplayer
Re-implementation of Android's MediaPlayer and audio effect classes based on OpenSL ES APIs.
Stars: ✭ 393 (-26.54%)
Mutual labels:  media-player
Maskara
A simple way to format text fields without getting affected by input filters
Stars: ✭ 515 (-3.74%)
Mutual labels:  filters
Gaussianblur
An easy and fast library to apply gaussian blur filter on any images. 🎩
Stars: ✭ 473 (-11.59%)
Mutual labels:  filters
Chromecast mpris
📺 Control Chromecasts from Linux and D-Bus
Stars: ✭ 413 (-22.8%)
Mutual labels:  media-player

Pano360

Build Status license progress

Pure Java library to play 360 degree panorama video (VR video) on Android. Using OpenGL ES 2.0

Pano 360 是一个Android平台下纯Java的全景(360度/VR)视频播放库,使用OpenGL ES 2.0来进行视频渲染,没有使用第三方库

Demo App 在这里下~

Read this in other languages: English

系列教程:从零开始写一个Android平台下的全景视频播放器

平台需求

  • OpenGL ES 2.0
  • Android 4.0.3 (API-15) 以上

特性

  • 单、双屏切换
  • 陀螺仪、触控(拖动、缩放)两种交互模式切换
  • 播放进度控制,控制栏自动隐藏
  • 类似GPUImage的滤镜组,支持多个滤镜叠加,滤镜顺序可在渲染到球体之前或之后
  • 支持原视频渲染(铺满屏幕/剪切/自适应)
  • 支持播放全景图片
  • 视频实时截图
  • 在线视频播放(你可能需要自行处理多种格式的解码问题)
  • 支持锁定任意坐标轴,用户从不同角度进入,看到的是同一个场景
    • LOCK_MODE_AXIS_Y: 和Cardboard Motion类似
  • 支持忽略任意坐标轴的旋转角度
  • 2D视频VR影院模式
  • 支持简单热点(图片/视频)

截图

ScreenShot

Youtube 优酷

适用对象

  • 如果你对于如何实现一个Android平台下的全景视频播放器感兴趣,或者急于使用一个带播放控制功能的全景视频播放器,或者有意在全景视频播放器中加入各种奇怪的功能,这个项目可能会对你有帮助。

如何使用

allprojects {
	repositories {
		...
		maven { url 'https://jitpack.io' }
	}
}
dependencies {
        compile 'com.github.Martin20150405.Pano360:vrlib:v1.1.2'
}
  • 有两种方法可以使用该库,详情请参考Demo App

  • 一行代码使用带播放控制的Activity (由类库提供)

Pano360ConfigBundle.newInstance().setFilePath(filePath).startEmbeddedActivity(this);
  • 提供一个GLSurfaceView,你可以在任意地方使用,但是需要自己处理播放控制和模式切换
<android.opengl.GLSurfaceView
    android:id="@+id/surface_view"
    android:layout_width="match_parent"
    android:layout_height="match_parent" />
GLSurfaceView glSurfaceView=(GLSurfaceView) findViewById(R.id.surface_view);
panoViewWrapper =PanoViewWrapper.with(this)
		.setConfig(configBundle)
		.setGlSurfaceView(glSurfaceView)
		.init();
glSurfaceView.setOnTouchListener(new View.OnTouchListener() {
	@Override
	public boolean onTouch(View v, MotionEvent event) {
		return panoViewWrapper.handleTouchEvent(event);
	}
});
@Override
protected void onPause(){
	super.onPause();
	panoViewWrapper.onPause();
}

@Override
protected void onResume(){
	super.onResume();
	panoViewWrapper.onResume();
}

@Override
protected void onDestroy(){
	super.onDestroy();
	panoViewWrapper.releaseResources();
}

未来特性(不要期望过高- -|||)

  • 加速度+电子罗盘支持(适合没有陀螺仪的手机)
  • 快速切换使用的解码器,例如IjkMediaPlayer
  • 小窗口/fragment播放
  • Handler+MessageQueue
  • 多种全景格式
  • 热点支持(Hotspot)、头控支持
  • Anti Distortion
  • RTSP RTMP (with VLC/Vitamio)
  • 完整播放控制功能
  • 视频录制/转码/倍速播放 (Mediacodec/ffmpeg)

历史版本

更新日志

反馈交流

  • 开启一个issue
  • 发送邮件至[email protected]
  • 如果觉得这个项目对你有帮助,欢迎star,欢迎来一起改进这个项目
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].