浅聊OpenSL ES音频开发

导语

开发Android上的音频应用,一般是使用Android提供的AudioRecord采集音频,使用AudioTrack播放音频,使用MediaCodec来编解码,但这些API均是Android提供的JAVA层API,无论是采集、播放还是编解码,都需要将音频数据从java层拷贝到native层,或从native层拷贝到java层,影响性能。为了开发更加高效的Android音频应用,则建议使用Android NDK提供的OpenSL ES API接口,它支持在native层直接处理音频数据。

当前腾讯视频自研播放器的音频输出逻辑,都是将解码后的音频数据都抛到Java层采用AudioTrack进行渲染输出。为了提高效率减少JNI拷贝,合理调整播放引擎与上层逻辑的架构,我们做了音频渲染模块的重构,将音频渲染模块下沉到播放引擎层,采用OpenSL在native层进行音频输出,并将现有的java层AudioTrack作为备份逻辑。

一、OpenSL ES API接口及使用流程

OpenSL ES是一种针对嵌入式系统特别优化过的硬件音频加速API,无授权费并且可以跨平台使用,它提供的高性能、标准化、低延迟的特性实现为嵌入式媒体开发提供了标准。关于OpenSL ES的介绍可以参考官方文档《OpenSL_ES_Specification_1.0.1.pdf》,这里不再赘述。在OpenSL ES中,一切API的访问和控制都是通过接口完成的,以下是OpenSL ES音频播放场景。


http://www.taodudu.cc/news/show-3785389.html

相关文章:

  • 【Android音视频】OpenSL ES音频播放示例一
  • 音视频系列四 ffmpeg配合opensl es播放音频
  • OpenSL ES音频库学习
  • 音视频系列--OpenSL ES基础用法总结
  • Harmony Native开发-我的OpenSL ES录音机
  • android open es录像,音频采集:Android基于OpenSL ES的实现
  • 音视频学习 AudioTrack、OpenSL ES 音频渲染
  • android4.0 音频框架 opensl openmax,适用于android的OpenSL ES指南-面向Android的OpenSL ES
  • Android音视频【十三】OpenSL ES介绍基于OpenSL ES实现音频采集
  • java输出和opensl,OpenSL ES范例,无java代码,纯C
  • OpenSL ES for Android
  • 使用MediaCodec+OpenSL编写简单的音频播放器
  • java输出和opensl,OpenSL的使用
  • Android中opensl架构图,Android音频开发(7):使用 OpenSL ES API(下)
  • Android FFmpeg开发(三),利用OpenSL ES实现音频渲染
  • Android中opensl架构,Android OpenSL ES详解
  • OpenSL ES总结
  • opensl学习笔记
  • 使用OpenSL直接播放mp3
  • 播放器基础--OpenSL ES音频播放
  • 最简单的OpenSL播放PCM实时音频
  • java冒泡排序详解!!!带图
  • 冒泡排序(含图解)
  • 重温经典排序算法之冒泡排序——图解+C/C++实现
  • C语言实现冒泡排序(图解)
  • [转载].关注电子工程师的身体健康与职业规划
  • 第二章软件项目需求管理
  • 综述总结:稀疏集成的卷积神经网络学习
  • 面试官的一些问题要如何回答?
  • 关注电子工程师的身体健康与职业规划

浅聊OpenSL ES音频开发相关推荐

  1. OpenHarmony OpenSl ES音频播放开发

    1.OpenHarmony OpenSl ES音频播放简介 开发者可以通过本博文了解在OpenHarmony中如何使用OpenSL ES接口进行音频播放相关操作:当前仅实现了部分OpenSL ES接口 ...

  2. OpenHarmony OpenSl ES音频录制

    1.OpenHarmony OpenSl ES音频录制开发简介 开发者可以通过本博文了解在OpenHarmony中如何使用OpenSL ES进行录音相关操作:当前仅实现了部分OpenSL ES接口,因 ...

  3. 音视频学习 AudioTrack、OpenSL ES 音频渲染

    前言 在讲解音频渲染之前,需要对音频的基础知识有所了解,所以该篇分为基础概念和AudioTrack 以及 OpenSL ES Demo 实例讲解,这样有助于更好的理解 Android 中音频渲染. 音 ...

  4. OpenSL ES音频库学习

    OpenSL ES音频库学习 简介 什么是OpenSL ES? openSL ES是一个专用于嵌入式系统的音频库,可以提供对音频的播放和录制等相关功能,在Android上Aduio Recoder都是 ...

  5. 播放器基础--OpenSL ES音频播放

    介绍 官网 OpenSL ES (Open Sound Library for Embedded Systems)是针对嵌入式系统的一套无授权费,跨平台, 硬件加速的音频API.它提供了一套标准化,高 ...

  6. 【Android音视频】OpenSL ES音频播放示例一

    本文将实现一个使用OpenSL ES来播放assets目录下mp3歌曲的demo(实际推荐大家使用oboe库). Android NDK之高性能音频https://developer.android. ...

  7. 音视频开发之旅(36) -FFmpeg +OpenSL ES实现音频解码和播放

    目录 OpenSL ES基本介绍 OpenSL ES播放音频流程 代码实现 遇到的问题 资料 收获 上一篇我们通过AudioTrack实现了FFmpeg解码后的PCM音频数据的播放,在Android上 ...

  8. Android直播开发之旅(13):使用FFmpeg+OpenSL ES播放PCM音频

    文章目录 1. OpenSL ES原理 1.1 OpenSL ES核心API讲解 1.1.1 对象(Object)与接口(Interface) 1.1.2 [OpenSL ES的状态机制](https ...

  9. Android音视频学习系列(五) — 掌握音频基础知识并使用AudioTrack、OpenSL ES渲染PCM数据

    系列文章 Android音视频学习系列(一) - JNI从入门到精通 Android音视频学习系列(二) - 交叉编译动态库.静态库的入门 Android音视频学习系列(三) - Shell脚本入门 ...

最新文章

  1. android eclipse 报error loading /system/media/audio/ xxx 错的解决办法。
  2. vivo手机解锁_关于手机“解锁”的话题,vivo屏幕指纹技术很有话语权
  3. C#中DictionaryTKey,TValue排序方式
  4. qgraphicsitem鼠标移动事件阻塞_常用的DOM事件
  5. 踩坑 - click事件与blur事件冲突问题 input文件上传同名文件问题
  6. 【期望】乘坐电梯(金牌导航 期望-2)
  7. 【JAVA基础篇】抽象类和接口的区别
  8. logisim优先编码器怎么用_编码器简介、应用的stm32代码及注释
  9. python调用matlab函数_从 Python 调用 MATLAB 函数的三种方法
  10. 路痴福音!高德地图上线真AR步行导航,可实景指引
  11. 贵大计算机学院陈力,CCF贵州大学学生分会完成换届
  12. 动画会震一下css,csshake.css强大的CSS3元素抖动动画库
  13. Ps 初学者教程,如何使用修复画笔工具修整照片?
  14. Visual Sourcesafe Internet使用备忘
  15. 58件女生想让男生知道的事情(男生必看)
  16. iOS 按钮、Cell暴力点击触发多次响应的问题研究
  17. Android之vold进程启动源码分析
  18. windows如何批量修改文件名
  19. pdf文档转换后出现大量乱码怎么办
  20. IDEA如何删除项目-小白实操记录

热门文章

  1. [转】sql修改列名及表名
  2. 关闭Adobe acrobat的自动更新功能
  3. 光伏电站监控系统实时监控保障安全运维
  4. Docker安装mysql8.0
  5. 人的命运究竟是怎样的,你想过吗?
  6. 转载:grib文件说明
  7. 双速率100G QSFP28 LR4光模块的介绍及应用
  8. 洛谷P1722 矩阵Ⅱ (卡塔兰数)
  9. 扫地机器人哪个牌子好
  10. vue中如何判断checkbox是否选中