利用OpenGL ES、手机传感器、相机和调用百度语音包服务,实现AR+语音播报导航功能(导航功能为模拟,Android)

该博客介绍了如何在Android平台上利用OpenGL ES进行图形渲染,结合手机传感器和相机,以及调用百度语音包服务,实现AR+语音播报的模拟导航功能。虽然相机API已被弃用,但提供了替代方案。此外,还提到了SensorManager的使用以及自定义GLSurfaceView和SpeechSynthesizerListener的重要性。项目代码可在作者的GitHub页面找到。
摘要由CSDN通过智能技术生成

Demo展示:

几个重要模块

GLSurfaceView:

1.首先需要自定义类实现GlsurfaceView.Renderer接口

public abstract class AbstractMyRender implements GLSurfaceView.Renderer {

    public float ratio;
//    围绕X轴旋转的角度
    public float xrotate = 0f;
//    围绕Y轴旋转的角度
    public float yrotate = 0f;
//    围绕Z轴旋转的角度
    public float zrotate = 0f;
    /*
            这是第一步
     */

    @Override
    public void onSurfaceCreated(GL10 gl10, EGLConfig eglConfig) {
//        清屏色
        gl10.glClearColor(0f,0f,0f,1f);
//        启用顶点缓冲区数组
        gl10.glEnableClientState(GL10.GL_VERTEX_ARRAY);
    }
    /*
            这是第二步
     */
    @Override
    public void onSurfaceChanged(GL10 gl10, int i, int i1) {
//设置视口
        gl10.glViewport(0,0,i,i1);
        ratio = (float)i/(float)i1;
//      投影矩阵
        gl10.glMatrixMode(GL10.GL_PROJECTION);
//      加载单位矩阵
        gl10.glLoadIdentity();
//      设置平截头体
        gl10.glFrustumf(-ratio,ratio,-1,1,3f,7f);
    }
    /*
            这是第三步
     */
    public  abstract void onDrawFrame(GL10 gl10);
}

2.定义子类继承自定义类并复写其中的方法(可以绘制不同的图案),例如绘制颜色立方体可以定义子类MyColorCubeRenderer

public class MyColorCubeRenderer extends AbstractMyRender {
    @Override
    public void onSurfaceCreated(GL10 gl10, EGLCon
评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值