码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • [Android][音频] 关于AudioTrack libaudioclient libaaudio


    前言:

    概述的官方文档见:

    https://source.android.com/docs/core/audio?hl=zh-cnicon-default.png?t=N7T8https://source.android.com/docs/core/audio?hl=zh-cn

    audio 的playback可以分为四条路线:

    1)java 路线,Java.AudioTrack->JNI.AudioTrack->libaudioclient(native).AudioTrack 。

    2)c/c++ ndk 路线,libaaudio.AAudio->libaudioclient(native).AudioTrack 。

    3)3rd party lib 路线,opensles , 详见:

            OpenSL ES Overview - The Khronos Group IncOpenSL ES™ is a royalty-free, cross-platform, hardware-accelerated audio API tuned for embedded systems. It provides a standardized, high-performance, low-latency method to access audio functionality for developers of native applications on embedded mobile multimedia devices, enabling straightforward cross-platform deployment of hardware and software audio capabilities, reducing implementation effort, and promoting the market for advanced audioicon-default.png?t=N7T8https://www.khronos.org/opensles/https://developer.android.com/ndk/guides/audio/opensl?hl=zh-cnicon-default.png?t=N7T8https://developer.android.com/ndk/guides/audio/opensl?hl=zh-cn4)3rd party lib 路线,google oboe ,oboe 是 google 较新的一个独立于 aosp 的工程,它对 opsles和libaaudio.AAudio 进行了统一封装,会首先尝试使用 AAudio ,如果走不通则使用opensles 。

    https://developer.android.com/ndk/guides/audio/opensl?hl=zh-cnicon-default.png?t=N7T8https://developer.android.com/ndk/guides/audio/opensl?hl=zh-cn

    四个相关的模块:

    libaaudio                       /frameworks/av/media/libaaudio                       

    libaudioclient                 /frameworks/av/media/libaudioclient                 

    libaudiohal                    /frameworks/av/media/libaudiohal                   

    libaudioprocessing        /frameworks/av/media/libaudioprocessing        

    Java路线

    java路线使用起来较为方便,但是如果不适用透传模式(编码的pcm直接传到AudioTrack里解码)的话,则可能会需要通过反射来使用 AudioTrack 的 write 函数。这种情况一般是使用 MediaCodec 做解码,如果是 java.MediaCodec 则不需要反射,如果是 native.MediaCodec 则需要反射。

    JAVA-AudioTrack:

    \frameworks\base\media\java\android\media\AudioTrack.java

    JNI-AudioTrack:

    /frameworks/base/core/jni/android_media_AudioTrack.h

    /frameworks/base/core/jni/android_media_AudioTrack.cpp

    libaudioclient(native)-AudioTrack:

    /frameworks/av/media/libaudioclient

    libaudioclient 提供了 JAVA - JNI 封装,没有提供 ndk 封装。

    c/c++ ndk路线

    android 没有提供 native AudioTrack 的 ndk ,但是提供了另外一个 ndk AAudio , AAudio 对 AudioTrack 进行了封装,因此可以把 AAudio 当作 AudioTrack 的 ndk 来使用。

    libaaudio:

    /frameworks/av/media/libaaudio

    ndk : include/aaudio/AAudio.h

    参考:https://developer.android.com/ndk/guides/audio/aaudio/aaudio?hl=zh-cnicon-default.png?t=N7T8https://developer.android.com/ndk/guides/audio/aaudio/aaudio?hl=zh-cn

    opensles

    略

    google oboe

    略

    参考:

    https://source.android.com/docs/core/audio/implement?hl=zh-cn

    https://developer.android.com/reference/android/media/AudioTrack

    Android Audio: Play a WAV file on an AudioTrack « Mind The Robot

  • 相关阅读:
    【音视频】音视频开发与学习
    java计算机毕业设计线上远程教学及自主学平台的设计与实现源程序+mysql+系统+lw文档+远程调试
    基于CNN卷积神经网络的TensorFlow+Keras深度学习的人脸识别
    vue基于element树形控件实现上下拖拽
    MySQL数据库使用select语句查询
    Kotlin面向对象基础使用方法(继承、接口、Lambda、空指针检查机制等)
    C- qsort()
    企业搭建网站选择什么配置的云服务器比较合适?
    【1-系统架构演进过程】
    # Spring 事务失效场景
  • 原文地址:https://blog.csdn.net/ykun089/article/details/132894861
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号