avatar
文章
97
标签
33
分类
13
首页
归档
标签
分类
友链
关于
Fleming's Blog
搜索
首页
归档
标签
分类
友链
关于

Fleming's Blog

音频流处理过程
发表于2026-01-16|音频
音频数据通过解码后播放的过程涉及多个步骤,从原始编码的音频流到最终通过声卡输出声音。以下是这一过程的基本步骤: 1. 获取编码音频数据首先,你需要从源(例如网络组播流、文件等)获取编码的音频数据。这通常是一个压缩格式的数据流,比如AAC、MP3等。 2. 解码音频数据使用适当的解码器将编码的音频数据转换为未压缩的PCM(脉冲编码调制)格式。Android提供了MediaCodec API来实现这一功能,也可以使用第三方库如FFmpeg进行更复杂的解码需求。 输入:编码的音频数据流。 处理:根据音频编码格式选择合适的解码器,并将数据流传递给解码器进行解码。 输出:解码后的PCM音频数据。 3. 音频数据缓冲与处理一旦获得了PCM数据,它需要被适当地缓冲和处理,以便能够平滑地传输到音频硬件进行播放。这包括调整采样率、声道数以及样本位深度等参数以匹配目标设备的要求。 4. 使用AAudio或AudioTrack播放音频接下来,你可以使用AAudio或AudioTrack API将PCM数据发送到音频硬件进行播放。 AAudio: 对于低延迟要求的应用场景,可以创建一个AAudio...
AOIP和VOIP
发表于2026-01-06|音频
AOIP和VOIP都是与网络通信相关的技术,但它们的应用领域和功能有所不同。以下是两者的详细对比: 1. VOIP(Voice over Internet Protocol)定义:VOIP 是一种通过互联网协议(IP)网络传输语音通信的技术。它将语音信号转换为数字数据包,并通过互联网或局域网进行传输,从而实现语音通话。 应用场景: 网络电话(如Skype、Zoom、Google Voice) 企业电话系统(IP PBX) 在线客服系统 视频会议中的语音部分 工作原理:VOIP 将模拟语音信号数字化并压缩成数据包,然后通过IP网络传输到接收端。接收端再将这些数据包解码并还原为语音信号。 优点: 成本低:使用现有互联网连接,节省传统电话线路费用。 灵活性高:支持多方通话、视频通话、消息传递等多功能集成。 易于扩展:适合远程办公和分布式团队。 缺点: 依赖网络质量:网络延迟、抖动或带宽不足会影响通话质量。 安全性问题:需要额外措施防止窃听或数据泄露。 2. AOIP(Audio over Internet Protocol)定义:AOIP 是一种通过IP网络...
AudioFlinger的基本概念
发表于2025-08-28|音频
AudioFlinger的基本概念AudioFlinger 是 Android 操作系统中最核心的底层音频服务之一,它位于原生(Native)层,是整个 Android 音频架构的基石。 1. AudioFlinger 是什么?简单来说,AudioFlinger 是一个运行在 audioserver 系统进程中的守护进程(Daemon),它的主要职责是: 音频混合 (Mixing): 当多个应用程序(如音乐播放器、游戏、导航语音、系统提示音)同时播放声音时,AudioFlinger 负责将这些不同的音频流混合成一个单一的输出流。 音频路由 (Routing): 决定混合后的音频最终通过哪个设备输出,例如内置扬声器、有线耳机、蓝牙耳机、HDMI 接口等。它会根据硬件连接状态和系统策略自动或手动切换。 硬件抽象层 (HAL) 管理: AudioFlinger 作为上层软件与底层音频硬件之间的桥梁。它不直接操作硬件,而是通过定义好的 Audio HAL (Hardware Abstraction Layer) 接口与厂商提供的音频驱动进行通信,从而实现对音频硬件的控制(如播放、录音、...
音频领域基本概念
发表于2025-08-20|音频
音频领域基本概念 概念 作用 常见值 采样率 决定频率范围 44.1kHz, 48kHz 位深度 决定动态范围 16bit, 24bit 比特率 决定数据量与音质 128kbps, 320kbps, 无损 编码方式 压缩算法(有损/无损) MP3, AAC, FLAC 声道数 空间感与沉浸感 单声道、立体声、5.1 容器格式 文件封装方式 MP4, MKV, WAV, FLAC 编解码器 实现压缩与播放 LAME(MP3)、FDK AAC 元数据 文件信息管理 ID3、Vorbis Comment 延迟与抖动 影响实时性与音质 低延迟 < 10ms 响度标准化 统一播放音量 LUFS, ReplayGain 1. 采样率(Sample Rate)定义:采样率是指每秒钟对声音信号进行采样的次数,单位是赫兹(Hz)或千赫兹(kHz)。它决定了音频能还原的频率范围。 原理:根据奈奎斯特定理(Nyquist Theorem),采样率必须至少是声音最高频率的两倍,才能准确还原原始声音。 常见采样率: 8 kHz:电话音质,...
Unicast、Multicast、Broadcast的含义及关系
发表于2025-08-19|扩展
Unicast、Multicast、Broadcast的含义及关系单播(Unicast)、组播(Multicast) 和 广播(Broadcast) 是计算机网络中三种基本的数据传输模式,它们在几乎所有现代网络通信领域都有应用。你可以把它们理解为“信息如何从一个地方发送到另一个或多个地方”的方式。 下面我们来系统地解释这个概念: 一、核心概念:三种传输模式 模式 中文 英文 通信关系 类比生活 单播 点对点 Unicast 1 对 1 打电话:你只打给一个人 组播 一对多(特定群体) Multicast 1 对 多(有选择) 发微信群消息:只有群成员能收到 广播 一对所有 Broadcast 1 对 全体 学校广播:全校都能听到 二、详细解释1. 单播(Unicast)——最常见的方式 定义:数据从一个发送方发送到一个特定接收方。 特点: 使用唯一的 IP 地址(如 192.168.1.100)。 每个接收者都需要独立的数据流。 支持 TCP(可靠)或 UDP(快速)。 ✅ 优点:安全、可靠、可定制。 ❌ 缺点:如果很多人看同一个视频,服务器要发很多...
SDP文件描述
发表于2025-07-24|音频
SDP文件描述SDP 中常见的 payload type(PT)值 有些编码有静态 payload type 值,比如: Payload Type 编码格式 采样率 说明 0 PCMU (G.711 μ-law) 8000 默认支持 3 GSM 8000 较老的移动语音编码 8 PCMA (G.711 A-law) 8000 和 PT 0 一样常用 9 G.722 16000 宽带语音,高质量 13 CN (Comfort Noise) 8000 背景噪声填充 14 MPA (MPEG Audio) - 音乐编码 107 OPUS - 音乐编码 96~127 动态编码 - 用于协商的动态 payload type
FFmpeg默认解码
发表于2025-07-21|音频
FFmpeg默认解码FFmpeg 默认支持大量的解码器,这些解码器覆盖了广泛的多媒体格式。以下是部分 FFmpeg 默认支持的音频和视频解码器列表。请注意,实际支持的解码器可能会根据你编译 FFmpeg 时的选择(如是否启用了某些外部库)有所不同。 默认支持的部分音频解码器 AAC (aac) - 高级音频编码。 AC3 (ac3, eac3) - Dolby Digital音频格式。 FLAC (flac) - 无损音频压缩编码。 MP3 (mp3, mp3float) - MPEG-1、MPEG-2 Audio Layer III。 Opus (opus) - Opus 是一个开源的、有损声音编码格式,设计用于互联网上的实时应用。 PCM (pcm_s16le, pcm_u8, 等) - 脉冲编码调制,直接表示模拟信号的样本值。 Vorbis (vorbis) - 常见于Ogg容器中的音频格式。 WMA (wmav1, wmav2) - Windows Media Audio。 G.722 (g722) - ITU-T G.722标准定义的宽频语音编码。 u-law, A-l...
RTP、RTSP、RTCP的含义及关系
发表于2025-07-16|扩展
RTP、RTSP、RTCP的含义及关系RTP/RTSP/RTCP的区别 用一句简单的话总结:RTSP发起/终结流媒体、RTP传输流媒体数据 、RTCP对RTP进行控制,同步 RTP:实时传输协议(Real-time Transport Protocol) RTP/RTCP是实际传输数据的协议 RTP传输音频/视频数据,如果是PLAY,Server发送到Client端,如果是RECORD,可以由Client发送到Server 整个RTP协议由两个密切相关的部分组成:RTP数据协议和RTP控制协议(即RTCP) RTSP:实时流协议(Real Time Streaming Protocol,RTSP) RTSP的请求主要有DESCRIBE,SETUP,PLAY,PAUSE,TEARDOWN,OPTIONS等,顾名思义可以知道起对话和控制作用 RTSP的对话过程中SETUP可以确定RTP/RTCP使用的端口,PLAY/PAUSE/TEARDOWN可以开始或者停止RTP的发送 RTCP:实时传输控制协议(Real-time ...
AudioTrack和Oboe的关系
发表于2025-07-16|音频
AudioTrack和Oboe的关系AudioTrack 不会直接调用 Oboe 的 API。AudioTrack 和 Oboe 是两个独立的音频处理方案,它们在 Android 系统中处于不同的层级并且服务于不同的目的。 AudioTrack 层次:AudioTrack 是 Android Java API 的一部分,提供了一个高层接口来播放 PCM 音频数据。 实现:它通过 Java 层调用底层的 Android 音频系统服务来完成音频播放任务。这些服务最终可能会使用 OpenSL ES 或 AAudio 来与硬件通信,但这是在 Android 系统内部实现细节的一部分,并不是 AudioTrack 直接调用这些 API。 Oboe 层次:Oboe 是一个基于 C++ 的库,设计用于 NDK(Native Development Kit)层面,提供了对 AAudio 和 OpenSL ES 的封装。 实现:Oboe 为开发者提供了一个更易于使用的接口来访问这些底层音频 API,从而能够实现低延迟和高性能的音频应用。 关系说明尽管 AudioTrack 和 Oboe 最终都...
AAudio和Oboe的关系
发表于2025-07-16|音频
AAudio和Oboe的关系AAudio 是由 Google 提供的一个底层音频 API,旨在为 Android 应用提供高性能和低延迟的音频输入输出功能。它直接与 Android 操作系统的音频层交互,提供了比之前的 API(如 OpenSL ES)更优秀的性能。 Oboe 则是一个构建在 AAudio 和 OpenSL ES 之上的 C++ 封装库。Oboe 的设计目的是简化 Android 上的实时音频应用开发,同时确保这些应用能够尽可能地利用 AAudio 带来的性能优势。如果设备不支持 AAudio 或者在某些情况下 AAudio 不适用时,Oboe 可以自动回退到使用 OpenSL ES,从而保证了良好的兼容性。 Oboe 的主要特点 简化API:Oboe 提供了一个更加简洁和易于使用的 API 来处理音频流,隐藏了直接使用 AAudio 或 OpenSL ES 的复杂性。 跨平台兼容性:尽管 Oboe 主要针对 Android 开发,它的设计也考虑到了跨平台的可移植性。 性能优化:通过尽量使用 AAudio,Oboe 能够实现更低的延迟和更高的效率。 使用 Obo...
12…10
avatar
Fleming Chen
不积跬步无以至千里,不积小流无以成江海。——《荀子·劝学》
文章
97
标签
33
分类
13
Follow Me
公告
Welcome to my blog!
最新文章
音频流处理过程2026-01-16
AOIP和VOIP2026-01-06
AudioFlinger的基本概念2025-08-28
音频领域基本概念2025-08-20
Unicast、Multicast、Broadcast的含义及关系2025-08-19
分类
  • ADB9
  • Code18
  • Flutter1
  • Git10
  • Grep1
  • Linux3
  • Repo2
  • Unity 3D1
标签
音频 Message IDE 缓存 LruCache 代码 flutter 系统 AlertDialog Android Studio 自学 Markdown SQLite AsyncTask Handler linux git unity 架构 开发工具 扩展 学习路线 BroadcastReceiver 数据库 日常 系统广播 经验 adb MVP EditText Android UI Dialog
归档
  • 一月 2026 2
  • 八月 2025 3
  • 七月 2025 5
  • 六月 2025 1
  • 四月 2025 2
  • 十一月 2024 1
  • 七月 2024 2
  • 二月 2024 3
网站信息
文章数目 :
97
本站访客数 :
本站总浏览量 :
最后更新时间 :
© 2016 - 2026 By Fleming Chen框架 Hexo 6.1.0|主题 Butterfly 5.5.4
搜索
数据加载中