浅聊OpenSL ES音频开发
浅聊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音频开发相关推荐
- OpenHarmony OpenSl ES音频播放开发
1.OpenHarmony OpenSl ES音频播放简介 开发者可以通过本博文了解在OpenHarmony中如何使用OpenSL ES接口进行音频播放相关操作:当前仅实现了部分OpenSL ES接口 ...
- OpenHarmony OpenSl ES音频录制
1.OpenHarmony OpenSl ES音频录制开发简介 开发者可以通过本博文了解在OpenHarmony中如何使用OpenSL ES进行录音相关操作:当前仅实现了部分OpenSL ES接口,因 ...
- 音视频学习 AudioTrack、OpenSL ES 音频渲染
前言 在讲解音频渲染之前,需要对音频的基础知识有所了解,所以该篇分为基础概念和AudioTrack 以及 OpenSL ES Demo 实例讲解,这样有助于更好的理解 Android 中音频渲染. 音 ...
- OpenSL ES音频库学习
OpenSL ES音频库学习 简介 什么是OpenSL ES? openSL ES是一个专用于嵌入式系统的音频库,可以提供对音频的播放和录制等相关功能,在Android上Aduio Recoder都是 ...
- 播放器基础--OpenSL ES音频播放
介绍 官网 OpenSL ES (Open Sound Library for Embedded Systems)是针对嵌入式系统的一套无授权费,跨平台, 硬件加速的音频API.它提供了一套标准化,高 ...
- 【Android音视频】OpenSL ES音频播放示例一
本文将实现一个使用OpenSL ES来播放assets目录下mp3歌曲的demo(实际推荐大家使用oboe库). Android NDK之高性能音频https://developer.android. ...
- 音视频开发之旅(36) -FFmpeg +OpenSL ES实现音频解码和播放
目录 OpenSL ES基本介绍 OpenSL ES播放音频流程 代码实现 遇到的问题 资料 收获 上一篇我们通过AudioTrack实现了FFmpeg解码后的PCM音频数据的播放,在Android上 ...
- 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 ...
- Android音视频学习系列(五) — 掌握音频基础知识并使用AudioTrack、OpenSL ES渲染PCM数据
系列文章 Android音视频学习系列(一) - JNI从入门到精通 Android音视频学习系列(二) - 交叉编译动态库.静态库的入门 Android音视频学习系列(三) - Shell脚本入门 ...
最新文章
- android eclipse 报error loading /system/media/audio/ xxx 错的解决办法。
- vivo手机解锁_关于手机“解锁”的话题,vivo屏幕指纹技术很有话语权
- C#中DictionaryTKey,TValue排序方式
- qgraphicsitem鼠标移动事件阻塞_常用的DOM事件
- 踩坑 - click事件与blur事件冲突问题 input文件上传同名文件问题
- 【期望】乘坐电梯(金牌导航 期望-2)
- 【JAVA基础篇】抽象类和接口的区别
- logisim优先编码器怎么用_编码器简介、应用的stm32代码及注释
- python调用matlab函数_从 Python 调用 MATLAB 函数的三种方法
- 路痴福音!高德地图上线真AR步行导航,可实景指引
- 贵大计算机学院陈力,CCF贵州大学学生分会完成换届
- 动画会震一下css,csshake.css强大的CSS3元素抖动动画库
- Ps 初学者教程,如何使用修复画笔工具修整照片?
- Visual Sourcesafe Internet使用备忘
- 58件女生想让男生知道的事情(男生必看)
- iOS 按钮、Cell暴力点击触发多次响应的问题研究
- Android之vold进程启动源码分析
- windows如何批量修改文件名
- pdf文档转换后出现大量乱码怎么办
- IDEA如何删除项目-小白实操记录