Android OpenGL 播放视频学习

1, 初步接触Open GL:
  http://www.cnblogs.com/TerryBlog/archive/2010/07/09/1774475.html
  使用GLSurfaceView和Render实现一个简单的三角形和正方形.其中,GLSurfaceView用于显示视图,Render用于3D渲染。这个博客的代码,运行时会报:
  java.lang.IllegalArgumentException: Must use a native order direct Buffer
  是因为顶点Buffer需要使用以下的方式初始化:
  

private static final int FLOAT_SIZE_BYTES = 4;
private FloatBuffer mTriangleVertices;
private final float[] mTriangleVerticesData = {
            // X, Y, Z, U, V
            -1.0f, -1.0f, 0, 0.f, 0.f,
            1.0f, -1.0f, 0, 1.f, 0.f,
            -1.0f,  1.0f, 0, 0.f, 1.f,
            1.0f,  1.0f, 0, 1.f, 1.f,
        };
public void init() {
    mTriangleVertices = ByteBuffer.allocateDirect(
                mTriangleVerticesData.length * FLOAT_SIZE_BYTES)
                    .order(ByteOrder.nativeOrder()).asFloatBuffer();
            mTriangleVertices.put(mTriangleVerticesData).position(0);
}

2,Android OpenGL ES教程
  http://blog.csdn.net/column/details/apidemoopengl.html?&page=3
  -- 主要包括了OpenGL ES 1.0和2.0的一些简单用法。

  http://www.jayway.com/2009/12/03/opengl-es-tutorial-for-android-part-i/

  -- 一个外国友人的Android OpenGL ES教程.

3, Android关于SurfaceView, GLSurfaceView, SurfaceTexture, Texture几个View的使用和区别(显示视频的界面)。
  http://www.wfuyu.com/technology/22762.html

4, GLSL教程(Shading language)
  http://blog.csdn.net/racehorse/article/details/6593719

5, 使用TextureView, SurfaceTexture,OpenGL ES来播放视频的教程:
  http://www.jianshu.com/p/d3d3186eefcb
  http://www.jianshu.com/p/b2d949ab1a1a
  http://www.jianshu.com/p/291ff6ddc164

时间: 2024-10-16 20:29:51

Android OpenGL 播放视频学习的相关文章

请教:Android正播放视频时的解码输出流如何获取?

============问题描述============ Android播放视频,经过解码器解码 获得数据流 再显示到屏幕上.请问这部分数据(解码器解码后的数据流)通过什么方法可以获取?  请教...  先谢谢啦 ============解决方案1============ 你是想录制视频? ============解决方案2============ 引用 3 楼 yu8fei 的回复: Quote: 引用 2 楼 sagittarius1988 的回复: 你是想录制视频? 不是,跟照相机录像机摄

Android实现播放视频

转载:http://www.bdqn.cn/news/201311/12100.shtml 使用VideoView播放视频 VideoView,用于播放一段视频媒体,它继承了SurfaceView,位于"android.widget.VideoView",是一个视频控件. 既然是播放一段视频,那么不可避免的要涉及到一些开始.暂停.停止等操作,VideoView也为开发人员提供了对应的方法,这里简单介绍一些常用的: int getCurrentPosition():获取当前播放的位置.

Android WebView播放视频(包括全屏播放)

最近项目开发中用到了WebView播放视频的功能,总结了开发中犯过的错误,这些错误在开发是及容易遇到的,所以我这里总结了一下,希望大家看到后不要再犯类似的错误,尽可能提高开发效率: 这个Demo我这里也参考了网上写的一个比较好的一个Demo,经过总结修改,写出来的. 以下是相应代码: MainActivity: package com.androidwebviewdemo; import android.app.Activity; import android.app.ProgressDialo

Android SurfaceView播放视频

先来介绍一下大部分软件如何解析一段视频流.首先它需要先确定视频的格式,这个和解码相关, 不同的格式视频编码不同,不是这里的重点.知道了视频的编码格式后,再通过编码格式进行解码,最后得到一帧一帧的图像,并把这些图像快速的显示在界面上, 即为播放一段视频.SurfaceView在Android中就是完成这个功能的. IBM POWER8通过一年充分融入了"开放"基因,现在有哪些成效?快来注册观看直播,一起拥抱开源的力量. --> SurfaceView 先来介绍一下大部分软件如何解析

【转】Android WebView 播放视频总结

今天发现 WebView里播放优酷的视频点击播放按钮后没反应,于是看官方文档和搜索解决,下面是我在别人基础上做的补充: android webView 无法播放视频,无法暂停,继续播放视频问题,无法根据浏览器居中显示内容问题 转自:http://blog.csdn.net/it_ladeng/article/details/8136534 此次遇到一个问题就是webView无法播放视频,查了下谷歌发现可以设置 setting.setPluginsEnabled(true); (从API 11 支

Android OpenGL ES向导学习笔记(扫盲专用)

Android 目前支持下面几个版本的OpenGL ES API : OpenGL ES 1.0 和 1.1 :Android 1.0和更高的版本支持这个API规范. OpenGL ES 2.0 : Android 2.2(API 8)和更高的版本支持这个API规范. OpenGL ES 3.0 : Android 4.3(API 18)和更高的版本支持这个API规范. OpenGL ES 3.1 :  Android 5.0(API 21)和更高的版本支持这个API规范. 支持OpenGL E

在Android中播放视频的例子

1 xml文件 命名:videoplayer 主Activity命名:VideoActivity 将视频文件放在手机  sdcard/ceshi.3gp  注意视频名字和格式 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" androidrientatio

Android SurfaceView播放视频时横竖屏的调整

对于横屏录制的视频就横屏播放,对于竖屏录制的视频就竖屏播放. 在mainifest文件里对负责播放的Activity添加以下属性“ android:configChanges="orientation|keyboardHidden|screenSize" 重写Acitivity的onConfigurationChanged方法: @Override public void onConfigurationChanged(Configuration newConfig) { super.o

OpenGL全景视频

全景视频其实在实现上和一般的视频播放基本差不多,解码可以用ffmpeg,只是对解码后的图片在绘制的时候要绘制在一个球上(我这里是球,好像有说有的格式要绘制在四面体上的,美做深入研究),而不是画在一个表面上.所以这里应该要用纹理. 1.计算球的顶点坐标和纹理坐标 球的顶点坐标和纹理坐标的计算可以说是全景的关键.这里参考android opengl播放全景视频 int cap_H = 1;//必须大于0,且cap_H应等于cap_W int cap_W = 1;//绘制球体时,每次增加的角度 flo