- 博客(4403)
- 资源 (98)
- 收藏
- 关注
原创 Android15 手机+车载 音频性能实战课(无声/杂音/断音/爆音解决方案):正式上线了(二百七十)
Android15车载手机音频性能实战课<无声/杂音/断音/爆音>等22种高频音频性能问题解决方案。更多原创,欢迎关注:Android系统攻城狮。
2026-02-02 06:30:00
1709
原创 【Android15 手机+车载 音频策略实战课】:正式上线了(二百六十四)
本篇目的:本课程基于Android15最新版本,深度讲解音频策略系统的设计架构与实战应用。从音频策略树的基础结构入手,逐步深入核心骨架、音量曲线等关键模块。再通过7个真实项目案例(Speaker改向、USB无损播放、蓝牙空间音效、定制音量曲线、Gain转换、数字耳机适配等)完整演示策略开发全流程。最后涵盖系统APP与MediaProjection的音频截取对比,帮助开发者掌握系统级音频策略定制能力。
2025-11-26 16:17:36
765
原创 【Android15快速自定义与集成音效实战课】:正式上线了(二百六十二)
本篇目的:给大家介绍一下:我的【Android15快速自定义与集成音效实战课】:正式上线了,希望可以帮助大家!这是一个在企业开发中,Android音效自定义、集成、调试快速上手的实战课。【Android15快速自定义与集成音实战课】,就是为了解决Android APP、Framework、音频开发者遇到音效问题的一个上手实战课,帮助开发者快速上手领导给的音效集成、调试、问题定位。软件 + 硬件开发环境源码环境:android - 15.0 . 0 _r32硬件环境:Pixel6。
2025-10-17 15:49:16
897
1
原创 Android tinyalsa深度解析之pcm_write调用流程与实战(一百零九)
本篇目的:Android tinyalsa 深度解析之pcm_write调用流程与实战。特性详情描述状态转换核心驱动力。它是将数据推入硬件并维持 RUNNING 状态的主要手段。阻塞属性可控。取决于打开时的flags;默认阻塞直到内核缓冲区有空间。性能消耗数据拷贝。涉及从用户空间到内核空间的内存搬运,在大数据量下受内存带宽限制。错误类型是最常见的错误,表示上层供数速度慢于硬件消耗速度。单位换算注意参数count是字节数,而内核返回的通常是帧数tinyalsa已做了内部封装。
2026-02-10 07:30:00
1334
原创 Android tinyalsa深度解析之pcm_stop调用流程与实战(一百零八)
本篇目的:Android tinyalsa 深度解析之pcm_stop调用流程与实战。特性详情描述状态机迁移强制回退。将状态从 RUNNING 直接打回至 SETUP。执行速度极快。直接操作硬件寄存器停止 DMA,不考虑数据完整性。数据安全性丢弃模式。Buffer 中尚未发送到 Codec 的数据会被全部丢弃。对比 Drainpcm_stop是立即切断;pcm_drain是等待数据播放完后再优雅停止。后续动作调用后若需重新播放,必须重新执行或直接写数据触发隐式启动。
2026-02-10 07:00:00
974
原创 Android tinyalsa深度解析之pcm_start调用流程与实战(一百零七)
本篇目的:Android tinyalsa 深度解析之pcm_start调用流程与实战。特性详情描述状态迁移核心动作。将设备状态从 PREPARED 强制推向 RUNNING。执行开销极小。仅涉及一个 ioctl 命令下发到硬件寄存器,不涉及数据搬运。启动时机手动可控。可绕过的限制,实现精准的播放起始点控制。隐式行为非强制显式。大多数情况下pcm_write会根据配置自动调用它。录音流特性必需性。录音流如果处于PREPARED状态而不startpcm_read将会一直阻塞或返回错误。
2026-02-09 07:00:00
379
原创 Android16进阶之获取播放位置MediaPlayer.getCurrentPosition调用流程与实战(二百二十八)
本篇目的:Android16音频深度解析之MediaPlayer.getCurrentPosition调用流程与实战。在 Android 多媒体开发中,实时获取音频或视频的播放进度是实现进度条同步、断点续播以及音画同步逻辑的基础。是应用层访问频率最高的接口之一,它直接反映了播放引擎当前的渲染时间戳。调用层级核心职责关键报错/结果应用框架层维护播放器状态机并分发 JNI 调用若对象已释放抛出系统服务层通过 Binder 进行跨进程通信指令下发至进程引擎处理层从MediaClock组件检索基准时间戳。
2026-02-08 12:45:08
765
原创 Android16进阶之音频播放定位MediaPlayer.seekTo调用流程与实战(二百二十七)
本篇目的:Android16进阶之音频播放定位MediaPlayer.seekTo调用流程与实战。在多媒体开发中,精准控制播放进度是提升用户体验的关键。是 Android 框架提供的用于调整播放位置的核心 API。调用层级核心职责关键特性/影响应用框架层参数封装与状态检查支持多种SeekMode定位模式选择系统服务层跨进程传递定位请求保证指令按序到达引擎处理层清空 Decoder 队列与重新索引NuPlayer核心 Seek 逻辑处理解码驱动层I 帧跳转与数据重新填充。
2026-02-08 12:42:02
829
1
原创 Android tinyalsa深度解析之pcm_prepare调用流程与实战(一百零六)
本篇目的:Android tinyalsa之调用流程与实战。特性详情描述状态机位置入口点。将状态从 SETUP/XRUN 强制切换为 PREPARED。执行开销中等。涉及内核 ioctl 和硬件驱动的重置操作,不建议在极高频率的循环中无故调用。恢复机制核心手段。是解决-EPIPE(Underrun/Overrun)最标准且唯一的 API。MMAP 兼容性自动同步。会自动重置 MMAP 指针,防止数据偏移导致的杂音。调用顺序先配置后准备。必须在pcm_open确定配置参数后、pcm_start或。
2026-02-07 07:30:00
720
2
原创 Android tinyalsa深度解析之pcm_is_ready调用流程与实战(一百零五)
本篇目的:Android tinyalsa之调用流程与实战。特性详情描述判断核心fd 有效性。本质是检查pcm_open阶段的open()系统调用是否返回了合法的描述符。返回值逻辑布尔型。1 代表一切正常,0 代表句柄不可用。内存关联句柄必存。即便函数返回 0,传入的pcm指针通常也指向一块已分配内存,需pcm_close销毁。调用时机初始化必做。在pcm_open之后、任何数据传输指令(write/read)之前必须调用。容错能力高安全性。
2026-02-07 07:00:00
1757
原创 Android16音频之音频播放停止MediaPlayer.stop:用法实例(二百二十六)
本篇目的:Android16进阶之音频播放停止MediaPlayer.stop:用法实例基本概念stop 是 MediaPlayer 的播放控制方法,用于完全终止音频或视频播放,释放解码器和缓冲资源,将播放器状态重置为 Stopped,再次播放需重新 prepare。功能立即停止媒体播放;释放底层解码资源;清除缓冲数据;重置播放位置到起始点;与 release 配合彻底释放内存。使用限制必须在 Prepared/Started/Paused/PlaybackCompleted 状态调用;
2026-02-06 07:15:00
725
原创 Android16音频之音频播放暂停MediaPlayer.pause:用法实例(二百二十五)
本篇目的:Android16进阶之音频播放暂停MediaPlayer.pause:用法实例基本概念pause 是 MediaPlayer 的播放控制方法,用于将正在播放的音频或视频暂停,保持当前播放位置不变,将播放器状态从 Started 转换为 Paused,可随时通过 start 恢复播放。功能立即暂停媒体播放;保留当前播放进度;释放部分解码资源;支持任意时刻恢复;与音频焦点丢失自动暂停联动。使用限制必须在 Started 状态调用;Prepared 或 Stopped 状态调用会报错。
2026-02-06 07:00:00
667
原创 鸿蒙系统Openharmony5.0.1系统之解决libffi.so.6库丢失问题(三)
本篇目的:鸿蒙系统Openharmony5.1.0系统之解决libffi.so.6库丢失问题。
2026-02-05 07:30:00
919
原创 鸿蒙系统Openharmony5.1.0系统之解决编译时:Node.js版本不匹配问题(二)
本篇目的:鸿蒙系统Openharmony5.1.0系统之解决编译时:Node.js版本不匹配问题。
2026-02-05 07:00:00
470
原创 Android16音频之媒体播放MediaPlayer.start:用法实例(二百二十四)
本篇目的:Android16进阶之媒体播放MediaPlayer.start:用法实例基本概念start 是 MediaPlayer 的核心播放控制方法,在成功 prepare 或 prepareAsync 回调后调用,触发音频或视频从当前位置开始播放,将播放器状态从 Prepared/Paused/PlaybackCompleted 转换为 Started 状态。功能触发媒体资源播放;支持从暂停位置恢复播放;支持循环播放模式配合;可与 seekTo 联动实现定点播放;
2026-02-04 07:30:00
1823
原创 Android16音频之媒体异步播放准备MediaPlayer.prepareAsync:用法实例(二百二十三)
本篇目的:Android16进阶之媒体异步播放准备MediaPlayer.prepareAsync:用法实例基本概念prepareAsync 是 MediaPlayer 的异步准备方法,在 setDataSource 后调用,立即返回不阻塞线程,在后台线程完成解码和缓冲,通过 OnPreparedListener 回调通知就绪状态,适合长媒体文件和网络流媒体场景。功能非阻塞式解码媒体资源;后台线程处理缓冲;通过回调接口监听准备完成;支持网络流媒体渐进式加载;可与进度条联动显示缓冲状态。使用限制。
2026-02-04 07:00:00
959
原创 Android16音频之媒体同步播放MediaPlayer.prepare:用法实例(二百二十二)
本篇目的:Android16进阶之同步播放MediaPlayer.setDataSource:用法实例基本概念setDataSource 向 MediaPlayer 提供同步播放的音频/视频文件路径或描述符,用于后续阻塞式 prepare() 播放,适合短音、即时反馈场景。功能支持本地文件、资源、FileDescriptor;可立即 prepare() 同步就绪;与权限、缓存联动;无阻塞设置。使用限制文件需可读;prepare() 会阻塞调用线程;长音频建议用异步;API 1 及以上。
2026-02-03 07:30:00
936
原创 Android16音频之设置媒体数据源MediaPlayer.setDataSource:用法实例(二百二十一)
本篇目的:Android16进阶之设置数据源MediaPlayer.setDataSource:用法实例基本概念setDataSource 向 MediaPlayer 提供音频/视频文件的 URI、FileDescriptor 或网络路径,用于后续解码与播放,是播放流程的首要入口。功能支持本地文件、资源、网络流、FD 多种形式;可附加 Header;与缓存、权限联动;无阻塞。使用限制需在 setOnPreparedListener 后调用 prepareAsync;文件需可读;
2026-02-03 07:00:00
787
原创 Android15车载音频进阶之MediaPlayer指定Adsp芯片解码播放(一百五十六)
本篇目的:Android15车载音频进阶之MediaPlayer指定Adsp芯片播放。
2026-02-02 07:30:00
687
原创 Android16音频之获取捕获策略AudioAttributes.getAllowedCapturePolicy:用法实例(二百二十)
本篇目的:Android16进阶之获取捕获策略AudioAttributes.getAllowedCapturePolicy:用法实例基本概念getAllowedCapturePolicy 返回构建时设置的捕获策略常量,用于运行期校验、日志、权限提示,确认其他应用能否捕获本音频流。功能构建后即可查询;与 setAllowedCapturePolicy 联动;可用于分支、日志、调试;无阻塞。使用限制返回 int 常量;与硬件无关;API 29 及以上。性能特性原子读,纳秒级;无内存分配。
2026-02-02 07:00:00
1446
原创 Android tinyalsa深度解析之pcm_close调用流程与实战(一百零四)
本篇目的:Android tinyalsa之pcm_close调用流程与实战。特性详情描述内存管理完全清理。内部集成了对mmap缓冲区和pcm结构体本身的free。调用配对必须与 pcm_open 配对。漏掉 close 会导致声卡被占用(Device Busy)以及系统 fd 泄露。线程安全非线程安全。严禁在主线程 close 的同时在另一线程执行pcm_write,需在 HAL 层加锁。硬件状态重置硬件。该函数执行后,内核通常会关闭相关的 DAC/ADC 电源以节省功耗。容错性高容忍度。
2026-02-01 09:59:15
805
原创 Android tinyalsa深度解析之pcm_open调用流程与实战(一百零三)
本篇目的:Android tinyalsa 之pcm_open调用流程与实战特性详情描述原子性/状态非阻塞支持。可以通过 flags 传入实现异步 IO。内存管理必须匹配 pcm_close。即便失败也要调用 close,否则会导致结构体内存泄露。错误处理pcm_is_ready 为准。不要仅判断指针是否为空,必须检查 ready 状态。权限要求需要系统权限。在 Android 中通常需要audio组权限才能访问/dev/snd/节点。硬件依赖强依赖 pcm_config。
2026-02-01 09:50:42
1004
原创 Linux内核深度解析之copy_to_user调用流程与实战(一百零二)
本篇目的:Linux 内核深度解析之调用流程与实战特性详情描述原子性/阻塞不可在中断上下文使用。拷贝过程可能触发缺页中断导致进程睡眠。安全性强制执行access_ok校验,严禁向内核地址范围写入数据。异常处理内核通过Fixup机制处理无效用户地址,保护内核不因用户错误而崩溃。数据泄露防护内部集成,防止内核缓冲区外溢导致隐私泄露。性能考量涉及内核/用户态切换。对于极大数据量,建议研究mmap零拷贝方案。《Android系统多媒体进阶实战》Audio工程师进阶系列多媒体系统工程师系列。
2026-01-31 16:39:28
573
原创 Linux内核深度解析之copy_from_user全路径调用流程与实战(一百零一)
本篇目的:Linux 内核深度解析之全路径调用流程与实战。调用层级核心职责关键报错/结果通用层 (Macro)access_ok地址合法性检查若不合法直接返回n内核安全层溢出检查可能触发BUG()或告警调试层睡眠检查在不可睡眠处调用会触发 Kernel Dump架构层 (ASM)指令级拷贝与异常锚点通过 CPU 异常机制捕获非法访问异常表层Fixup代码恢复现场确保内核不崩溃,仅返回错误《Android系统多媒体进阶实战》Audio工程师进阶系列多媒体系统工程师系列。
2026-01-31 12:08:10
634
原创 Android16音频之设置音效空间化AudioAttributes.Builder.setIsContentSpatialized:用法实例(二百一十九)
本篇目的:Android16进阶之设置音效空间化AudioAttributes.Builder.setIsContentSpatialized:用法实例基本概念setIsContentSpatialized 标记音频内容是否已具备空间化效果,用于系统跳过二次处理或启用头部追踪,提升沉浸感。功能构建前调用;与空间音频框架联动;可用于杜比全景声、游戏 3D 音效;无阻塞。使用限制需配合空间音频设备;标记错误可能导致效果失真;API 32 及以上。性能特性纯布尔标记,纳秒级;无内存开销;
2026-01-31 07:30:00
1436
原创 Android16音频之设置录音策略AudioAttributes.Builder.setAllowedCapturePolicy:用法实例(二百一十八)
本篇目的:Android16进阶之设置录音策略AudioAttributes.Builder.setAllowedCapturePolicy:用法实例基本概念setAllowedCapturePolicy 指定其他应用能否捕获本音频流,可选 ALLOW_CAPTURE_BY_ALL、ALLOW_CAPTURE_BY_SYSTEM、ALLOW_CAPTURE_BY_NONE,用于隐私保护。功能构建前调用;与系统安全策略联动;可防止录屏、投屏窃取;无阻塞。使用限制需配合用途设置;
2026-01-31 07:00:00
1313
原创 Android16音频之设置录音预设AudioAttributes.Builder.setCapturePreset:用法实例(二百一十七)
本篇目的:Android16进阶之设置录音预设AudioAttributes.Builder.setCapturePreset:用法实例基本概念setCapturePreset 传入 MediaRecorder.AudioSource 常量,如 CAMCORDER、VOICE_RECOGNITION,用于系统级录音策略预设,自动匹配增益、降噪、路由。功能构建前调用;与硬件 DSP 联动;可用于场景优化、快速配置;无阻塞。使用限制与 setAudioSource 互斥;仅影响属性构建;
2026-01-30 07:30:00
839
原创 Android16音频之设置音频流类型AudioAttributes.Builder.setLegacyStreamType:用法实例(二百一十六)
本篇目的:Android16进阶之设置音频流类型AudioAttributes.Builder.setLegacyStreamType:用法实例基本概念setLegacyStreamType 传入 STREAM_MUSIC、STREAM_VOICE_CALL 等旧版常量,用于兼容旧系统音量控制,映射到新版用途与内容类型。功能构建前调用;与旧版 AudioManager 联动;可用于音量键响应、焦点策略;无阻塞。使用限制与用途设置互斥;建议优先使用新版 API;API 21 及以上。
2026-01-30 07:00:00
1756
原创 Android15 手机+车载 音频性能实战课(无声/杂音/断音/爆音解决方案):正式上线了(二百六十九)
Android15车载手机音频性能实战课<无声/杂音/断音/爆音>等22种高频音频性能问题解决方案。更多原创,欢迎关注:Android系统攻城狮。
2026-01-29 08:23:19
1251
1
原创 Android16音频之获取内容类型AudioAttributes.Builder.getContentType:用法实例(二百一十五)
本篇目的:Android16进阶之获取内容类型AudioAttributes.Builder.getContentType:用法实例基本概念getContentType 返回构建时写入的内容类型常量,用于运行期校验、日志、分支处理,确保与系统 EQ、降噪策略一致。功能构建后即可查询;与 setContentType 联动;可用于日志、分支、调试;无阻塞。使用限制返回 int 常量;与硬件无关;API 26 及以上。性能特性原子读,纳秒级;无内存分配;与对象字段同步。使用场景。
2026-01-29 07:30:00
586
原创 Android16音频之获取音频用途AudioAttributes.Builder.getUsage:用法实例(二百一十四)
本篇目的:Android16进阶之获取音频用途AudioAttributes.Builder.getUsage:用法实例基本概念getUsage 返回构建时写入的音频用途常量,用于运行期校验、日志、分支处理,确保与系统策略一致。功能构建后即可查询;与 setUsage 联动;可用于日志、分支、调试;无阻塞。使用限制返回 int 常量;与硬件无关;API 26 及以上。性能特性原子读,纳秒级;无内存分配;与对象字段同步。使用场景分支校验、日志上报、调试追踪、自动测试、策略对比。
2026-01-29 07:00:00
680
原创 Android16音频之设置音频类型AudioAttributes.Builder.setContentType:用法实例(二百一十三)
本篇目的:Android16进阶之设置音频类型AudioAttributes.Builder.setContentType:用法实例基本概念setContentType 声明音频内容类别,如 CONTENT_TYPE_SPEECH、CONTENT_TYPE_MUSIC,用于系统 EQ、降噪、增益策略自动匹配。功能构建前调用;与音频效果、焦点策略联动;可用于音质优化、省电;无阻塞。使用限制需与用途搭配;错误类型可能导致效果失真;API 21 及以上。性能特性纯枚举设置,纳秒级;
2026-01-28 07:30:00
671
原创 Android16音频之设置音频用途AudioAttributes.Builder.setUsage:用法实例(二百一十二)
本篇目的:Android16进阶之设置音频用途AudioAttributes.Builder.setUsage:用法实例基本概念setUsage 向 AudioAttributes 声明音频使用场景,如 USAGE_VOICE_COMMUNICATION、USAGE_GAME,用于系统音量路由、焦点策略、权限提示。功能构建前调用;与音频焦点、通知、通话联动;可用于自动路由、省电策略;无阻塞。使用限制必须与内容类型匹配;错误使用可能导致焦点丢失;API 21 及以上。性能特性。
2026-01-28 07:00:00
616
原创 Android16音频之获取property掩码AudioFormat.getPropertySetMask:用法实例(二百一十一)
本篇目的:Android16进阶之获取property掩码AudioFormat.getPropertySetMask:用法实例基本概念getPropertySetMask 返回位掩码,指示当前 AudioFormat 实例已赋值的属性(采样率、掩码、编码等),用于运行期快速判断哪些字段有效。功能构建后即可查询;与各个 setter 联动;可用于分支、日志、调试;无阻塞。使用限制返回 int 位掩码;与硬件无关;API 34 及以上。性能特性原子读,纳秒级;无内存分配;与内部标志同步。
2026-01-27 07:30:00
1177
原创 Android16音频之获取帧大小AudioFormat.getFrameSizeInBytes:用法实例(二百一十)
本篇目的:Android16进阶之获取帧大小AudioFormat.getFrameSizeInBytes:用法实例基本概念getFrameSizeInBytes 返回单帧字节数,等于 声道数 × 采样字节数,用于精准计算缓冲区、偏移量与文件长度。功能构建后即可查询;与编码、声道联动;可用于内存分配、循环偏移;无阻塞。使用限制返回 int 字节数;与硬件无关;API 26 及以上。性能特性原子读,纳秒级;无内存分配;与对象字段同步。使用场景。
2026-01-27 07:00:00
618
原创 Android15车载音频进阶之audioserver线程普通vs实时调度优先级(一百五十五)
本篇目的:Android15车载音频进阶之audioserver线程普通vs实时调度优先级。
2026-01-26 07:30:00
1067
原创 Android16音频之获取声道索引掩码AudioFormat.getChannelIndexMask:用法实例(二百零九)
本文介绍了Android 16中AudioFormat.getChannelIndexMask方法的用法与实例。该方法用于获取声道索引掩码,返回构建时设置的位索引掩码,每个位对应一路物理麦克风,便于调试与日志记录。文章详细讲解了其基本概念、功能特性、使用限制以及性能特点,并提供了三个典型代码实例:对角掩码校验与补录、索引掩码日志头部写入、低功耗单麦索引确认。这些实例展示了该方法在通道校验、日志上报、故障排查等场景下的实际应用,帮助开发者更好地理解和使用该功能进行音频处理。
2026-01-26 07:00:00
605
原创 Android15 手机+车载 音频性能实战课(无声/杂音/断音/爆音解决方案):正式上线了(二百六十八)
Android15车载手机音频性能实战课<无声/杂音/断音/爆音>等22种高频音频性能问题解决方案。更多原创,欢迎关注:Android系统攻城狮。
2026-01-25 14:54:17
391
Universal Serial Bus Device Class Definition for Audio Devices.zip
2019-11-16
GStreamer中文开发手册.zip
2020-07-22
H.264标准协议(官方中文版)
2020-10-28
手写Fuchsia第一个app
2020-03-16
JM-H264参考手册
2020-10-28
第五代加固技术ARM VMP原理实现与应用.zip
2020-03-01
AUDIO CODEC DAPM详解.zip
2019-12-30
debug_hybris_demo.zip
2020-06-03
vcxsrv-64.1.20.8.1.zip
2020-06-20
Gstreamer-Openmax-gst-openmax.zip
2020-08-17
MultimediaFrameworkOverview.zip
2020-09-01
HxD_Hex编辑器中文版.zip
2020-09-12
win10removeAll.zip
2020-06-25
蓝牙Audio调试.zip
2019-12-27
Android64位gdbserver与Win10-32位gdb.exe与Ubuntu64位gdb可执行bin
2024-10-15
彻底禁掉Win10 Defender自启动
2022-12-24
Elecard HEVC Analyzer_For_Windows.zip
2021-01-06
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅