- 博客(4354)
- 资源 (98)
- 收藏
- 关注
原创 【Android15 手机+车载 音频策略实战课】:正式上线了(二百六十四)
本篇目的:本课程基于Android15最新版本,深度讲解音频策略系统的设计架构与实战应用。从音频策略树的基础结构入手,逐步深入核心骨架、音量曲线等关键模块。再通过7个真实项目案例(Speaker改向、USB无损播放、蓝牙空间音效、定制音量曲线、Gain转换、数字耳机适配等)完整演示策略开发全流程。最后涵盖系统APP与MediaProjection的音频截取对比,帮助开发者掌握系统级音频策略定制能力。
2025-11-26 16:17:36
750
原创 【Android15快速自定义与集成音效实战课】:正式上线了(二百六十二)
本篇目的:给大家介绍一下:我的【Android15快速自定义与集成音效实战课】:正式上线了,希望可以帮助大家!这是一个在企业开发中,Android音效自定义、集成、调试快速上手的实战课。【Android15快速自定义与集成音实战课】,就是为了解决Android APP、Framework、音频开发者遇到音效问题的一个上手实战课,帮助开发者快速上手领导给的音效集成、调试、问题定位。软件 + 硬件开发环境源码环境:android - 15.0 . 0 _r32硬件环境:Pixel6。
2025-10-17 15:49:16
886
1
原创 Android16音频之设置Privacy信息AudioRecord.Builder.setPrivacySensitive:用法实例(一百九十七)
本篇目的:Android16进阶之设置Privacy信息AudioRecord.Builder.setPrivacySensitive:用法实例基本概念setPrivacySensitive 标记当前录音流是否包含敏感内容,系统据此在日志、转储、权限提示中采取更严格策略。功能构建前调用;与安全策略联动;可用于隐藏进程、屏蔽转储;无额外权限。使用限制仅影响系统行为;默认 false;设为 true 后日志脱敏;API 34 及以上。性能特性布尔标记,纳秒级;无内存开销;
2026-01-17 07:30:00
23
原创 Android16音频之设置上下文AudioRecord.Builder.setContext:用法实例(一百九十六)
本篇目的:Android16进阶之设置上下文AudioRecord.Builder.setContext:用法实例基本概念setContext 向 Builder 传入 Application 或 Activity 上下文,用于系统级资源缓存、权限提示、音频焦点统计,提升录制稳定性。功能构建前调用;与音频服务、缓存目录联动;可用于低内存模式、调试追踪;无阻塞。使用限制仅影响系统缓存策略;不传则使用默认全局上下文;API 34 及以上。性能特性轻量级引用,微秒级;无内存泄漏;
2026-01-17 07:00:00
14
原创 Android16音频之设置MIC场维度AudioRecord.setPreferredMicrophoneFieldDimension:用法实例(一百九十五)
本篇目的:Android16进阶之设置MIC场维度AudioRecord.setPreferredMicrophoneFieldDimension:用法实例基本概念setPreferredMicrophoneFieldDimension 传入 0.0 至 1.0 的浮点值,指定麦克风拾音场宽度,0 为窄波束,1 为全向,用于精细控制空间拾音范围。功能运行期设置;与阵列波束联动;可被系统降级;无需权限;立即生效。使用限制仅对支持波束硬件生效;传入 1.0 等效于全向;API 34 及以上。
2026-01-16 07:30:00
759
原创 Android16音频之设置MIC方向AudioRecord.setPreferredMicrophoneDirection:用法实例(一百九十四)
本篇目的:Android16进阶之设置MIC方向AudioRecord.setPreferredMicrophoneDirection:用法实例基本概念setPreferredMicrophoneDirection 传入 MIC_DIRECTION 常量,指定阵列麦克风指向角度,用于波束成形与空间音频。功能运行期设置;与多麦克风阵列联动;可被系统降级;无需权限;立即生效。使用限制仅对支持波束硬件生效;传入 MIC_DIRECTION_UNSPECIFIED 清除偏好;API 34 及以上。
2026-01-16 07:00:00
788
原创 Android16音频之获取激活的麦克风AudioRecord.getActiveMicrophones:用法实例(一百九十三)
本篇目的:Android16进阶之获取激活的麦克风AudioRecord.getActiveMicrophones:用法实例基本概念getActiveMicrophones 返回当前真正通电采样的麦克风列表,每个 MicrophoneInfo 包含坐标、灵敏度、频率响应,用于精准空间音频与算法调参。功能运行期随时查询;与多麦克风阵列联动;可用于波束指向、降噪权重、可视化;无阻塞。使用限制仅在 RECORDSTATE_RECORDING 时有效;返回空列表表示未获取;API 28 及以上。
2026-01-15 07:30:00
576
原创 Android16音频之获取路由设备AudioRecord.getRoutedDevice:用法实例(一百九十二)
本篇目的:Android16进阶之获取路由设备AudioRecord.getRoutedDevice:用法实例基本概念getRoutedDevice 返回当前实际承载录音的 AudioDeviceInfo,反映系统最终选择,用于确认硬件路径。功能运行期随时查询;与音频策略、热插拔联动;可用于降级检测、日志、自动重选;无阻塞。使用限制返回 null 表示未初始化或路由未就绪;系统可能动态切换;API 23 及以上。性能特性原子读,纳秒级;无内存分配;与 HAL 层同步。使用场景。
2026-01-15 07:00:00
1142
原创 Android16音频之获取首选设备AudioRecord.getPreferredDevice:用法实例(一百九十一)
本篇目的:Android16进阶之获取首选设备AudioRecord.getPreferredDevice:用法实例基本概念getPreferredDevice 返回当前 AudioRecord 实例通过 setPreferredDevice 设定的 AudioDeviceInfo,若无设定则返回 null,用于运行期确认路由偏好。功能调用即得对象;与音频策略联动;可用于 UI 回显、日志、重选提示;无阻塞。使用限制返回对象仅供读取;系统可能降级到其他设备;API 23 及以上。性能特性。
2026-01-14 07:30:00
560
原创 Android16音频之选择录音首选设备AudioRecord.setPreferredDevice:用法实例(一百九十)
本篇目的:Android16进阶之选择录音首选设备AudioRecord.setPreferredDevice:用法实例基本概念setPreferredDevice 传入 AudioDeviceInfo 对象,将录音输入路由到指定硬件,如外置 USB 麦克风或蓝牙耳机,用于精准采集。功能构建前或运行期调用;与音频策略联动;可被系统降级;无需权限;立即生效。使用限制设备必须出现在 getRoutedDevice 列表;传入 null 清除偏好;API 23 及以上。性能特性。
2026-01-14 07:00:00
1089
原创 Android16音频之获取录音时间戳AudioRecord.getTimestamp:用法实例(一百八十九)
本篇目的:Android16进阶之获取录音时间戳AudioRecord.getTimestamp:用法实例基本概念getTimestamp 返回 AudioTimestamp 对象,包含 framePosition 与 nanoTime,用于精确对齐音频与系统时间。功能调用即得当前硬件指针;与帧数联动;可用于音视频同步、延迟测量;无阻塞。使用限制需在 startRecording 后调用;返回 false 表示不可用;API 24 及以上。性能特性原子读,纳秒级;无内存分配;
2026-01-13 07:30:00
1064
原创 Android16音频之开始录制AudioRecord.startRecording:用法实例(一百八十八)
本篇目的:Android16进阶之开始录制AudioRecord.startRecording:用法实例基本概念startRecording 将 AudioRecord 状态切换为 RECORDSTATE_RECORDING,启动硬件采集,后续方可调用 read 获取数据。功能触发 native 驱动;与缓冲区大小联动;支持快速启动;无参数;同步返回。使用限制需先成功初始化;不可重复调用;调用后状态立即生效;API 3 及以上。性能特性启动延迟等于缓冲区剩余帧数/采样率;无内存分配;
2026-01-13 07:00:00
1113
原创 Android15车载音频进阶之APP写入 vs HAL读取如何计算(一百五十三)
本篇目的:Android15车载音频进阶之APP写入 vs HAL读取如何计算。
2026-01-12 07:30:00
1600
原创 Android16音频之读取录音数据AudioRecord.read:用法实例(一百八十七)
本篇目的:Android16进阶之读取录音数据AudioRecord.read:用法实例基本概念read 系列方法将音频数据从共享内存拷贝到用户提供的缓冲区,支持 byte[]、short[]、float[]、ByteBuffer,返回实际读取帧数,是 PCM 采集核心入口。功能阻塞与非阻塞模式;与缓冲区大小联动;支持超时控制;无需权限;适用于文件、网络、算法输入。使用限制需在 startRecording 后调用;数组长度须为帧整数倍;返回负数表示错误;API 3 及以上。性能特性。
2026-01-12 07:00:00
1324
原创 Android16音频之获取最小缓冲区AudioRecord.getMinBufferSize:用法实例(一百八十六)
本篇目的:Android16进阶之获取最小缓冲区AudioRecord.getMinBufferSize:用法实例基本概念getMinBufferSize 静态方法,根据采样率、声道配置、编码格式返回系统建议的最小缓冲区字节数,用于防止 underrun。功能实例化前即可调用;与硬件能力联动;可用于动态内存分配、性能调优;无阻塞。使用限制返回负值表示参数不支持;需与后续 Builder 参数一致;API 3 及以上。性能特性纯计算,微秒级;无权限依赖;与 HAL 底层匹配。使用场景。
2026-01-10 07:30:00
920
原创 Android16音频之获取会话IDAudioRecord.getAudioSessionId:用法实例(一百八十五)
本篇目的:Android16进阶之获取会话ID AudioRecord.getAudioSessionId:用法实例基本概念getAudioSessionId 返回 AudioRecord 实例绑定的音频会话标识,用于与音效、音量管理、可视化组件共享同一路音频流。功能初始化后即可查询;与 AudioEffect、Visualizer、MediaPlayer 联动;可用于实时音效挂载;无阻塞。使用限制仅在 STATE_INITIALIZED 后有效;返回 0 表示未绑定;API 9 及以上。
2026-01-10 07:00:00
945
原创 Android16音频之获取缓冲区帧数AudioRecord.getBufferSizeInFrames:用法实例(一百八十四)
本篇目的:Android16进阶之获取缓冲区帧数AudioRecord.getBufferSizeInFrames:用法实例基本概念getBufferSizeInFrames 返回 AudioRecord 内部环形缓冲区大小,以帧为单位,用于精准计算延迟与读写周期。功能构建后即可查询;与 setBufferSizeInFrames 设置联动;可用于周期分割、延迟估算;无阻塞。使用限制仅在 STATE_INITIALIZED 后有效;返回 0 表示未初始化;API 26 及以上。性能特性。
2026-01-09 07:30:00
1902
原创 Android16音频之获取格式AudioRecord.getFormat:用法实例(一百八十三)
本篇目的:Android16进阶之获取格式AudioRecord.getFormat:用法实例基本概念getFormat 返回 AudioRecord 实际使用的 AudioFormat 实例,内部封装采样率、声道数、编码类型,用于运行期完整校验音频参数。功能构建后即可查询;与 Builder 设置联动;可用于格式比对、日志上报、重采样配置;无阻塞。使用限制仅在 STATE_INITIALIZED 后有效;返回 null 表示未初始化;API 3 及以上。性能特性原子读,纳秒级;
2026-01-09 07:00:00
1214
原创 Android ALSA进阶之处理PCM的ioctl命令snd_pcm_lib_ioctl:用法实例(一百)
本篇目的:Android ALSA驱动进阶之处理PCM的ioctl命令snd_pcm_lib_ioctl:用法实例基本概念snd_pcm_lib_ioctl是ALSA核心提供的标准ioctl处理函数,用于处理HW_PARAMS、SW_PARAMS、PREPARE、START、STOP、TRIGGER、STATUS等常用命令,驱动只需在ops->ioctl中指向它即可,无需重复实现。功能支持全部标准PCM命令;自动调用驱动ops中的hw_params、sw_params、trigger等回调;
2026-01-08 09:11:35
900
原创 Android16音频之获取声道数AudioRecord.getChannelCount:用法实例(一百八十二)
本篇目的:Android16进阶之获取声道数AudioRecord.getChannelCount:用法实例基本概念getChannelCount 返回 AudioRecord 实际使用的声道数量,用于确认单声道、立体声或多声道布局。功能构建后即可查询;与 AudioFormat 设置联动;可用于缓冲区大小计算、分轨处理;无阻塞。使用限制仅在 STATE_INITIALIZED 后有效;返回 0 表示未初始化;API 3 及以上。性能特性原子读,纳秒级;无内存分配;与硬件通道映射同步。
2026-01-08 07:30:00
696
原创 Android16音频之获取声道配置AudioRecord.getChannelConfiguration:用法实例(一百八十一)
本篇目的:Android16进阶之获取声道配置AudioRecord.getChannelConfiguration:用法实例基本概念getChannelConfiguration 返回 AudioRecord 实际使用的声道掩码,用于确认单声道、立体声或多声道布局。功能构建后即可查询;与 AudioFormat 设置联动;可用于通道数计算、路由决策;无阻塞。使用限制仅在 STATE_INITIALIZED 后有效;返回 0 表示未初始化;API 3 及以上。性能特性原子读,纳秒级;
2026-01-08 07:00:00
1548
原创 Android16音频之获取音频格式AudioRecord.getAudioFormat:用法实例(一百八十)
本篇目的:Android16进阶之获取音频格式AudioRecord.getAudioFormat:用法实例基本概念getAudioFormat 返回 AudioRecord 实际使用的 AudioFormat 对象,内部包含采样率、通道掩码、编码格式,用于运行期确认音频参数。功能构建后即可查询;与 Builder 设置联动;可用于格式校验、重采样、日志;无阻塞。使用限制仅在 STATE_INITIALIZED 后有效;返回 null 表示未初始化;API 3 及以上。性能特性。
2026-01-07 07:30:00
785
原创 Android16音频之获取音源AudioRecord.getAudioSource:用法实例(一百七十九)
本篇目的:Android16进阶之获取音源AudioRecord.getAudioSource:用法实例基本概念getAudioSource 返回 AudioRecord 创建时使用的音源类型,对应 MediaRecorder.AudioSource 常量,用于运行期确认输入路线。功能构建后即可查询;与硬件路由联动;可用于日志、策略分流;无阻塞。使用限制仅在 STATE_INITIALIZED 后有效;返回负值表示未初始化;API 3 及以上。性能特性原子读,纳秒级;无内存分配;
2026-01-07 07:00:00
1548
原创 Android16音频之获取Record采样率AudioRecord.getSampleRate:用法实例(一百七十八)
本篇目的:Android16进阶之获取Record采样率AudioRecord.getSampleRate:用法实例基本概念getSampleRate 返回 AudioRecord 实际生效的采样率,单位 Hz,用于校验与请求值是否一致。功能构建后即可查询;与 AudioFormat 设置联动;可用于重采样决策;无阻塞。使用限制仅在 STATE_INITIALIZED 后有效;返回 0 表示未初始化;API 3 及以上。性能特性原子读,纳秒级;无内存分配;与硬件时钟同步。使用场景。
2026-01-06 07:30:00
1846
原创 Android16音频之获取Record状态AudioRecord.getState:用法实例(一百七十七)
本篇目的:Android16进阶之获取Record状态AudioRecord.getState:用法实例基本概念getState 返回 AudioRecord 实例生命周期状态,取值 STATE_UNINITIALIZED 或 STATE_INITIALIZED,用于确认对象是否可用。功能构建后立即查询;与 release 联动;可用于防崩溃提前退出;无阻塞。使用限制仅在对象构建后有效;release 后恒为 UNINITIALIZED;API 3 及以上。性能特性原子读,纳秒级;
2026-01-06 07:00:00
1603
原创 Android16音频之获取录制状态AudioRecord.getRecordingState:用法实例(一百七十六)
本篇目的:Android16进阶之获取录制状态AudioRecord.getRecordingState:用法实例基本概念getRecordingState 返回 AudioRecord 当前录制状态,取值 RECORDSTATE_STOPPED 或 RECORDSTATE_RECORDING,用于判断采集是否已激活。功能调用即得状态,无阻塞;与 startRecording stop 联动;可用于 UI 刷新、日志打点、异常重试。使用限制需在对象构建后调用;状态变化依赖系统调度;
2026-01-05 07:30:00
1650
原创 Android16之命令atrace用法实例(二百六十七)
本篇目的:Android16之命令atrace用法实例atrace是Android平台内置的系统级跟踪工具,最早随Jelly Bean引入,用于以几乎零开销的方式收集内核ftrace与用户空间trace事件。进入Android16后,atrace在AOSP build/envsetup.sh中被封装为可直接在主机端调用的shell函数,使开发者无需记忆复杂长命令即可对真机或模拟器进行性能剖析。
2026-01-03 10:34:53
885
原创 Android16音频之读取byte数据AudioRecord.read:用法实例(一百七十五)
本篇目的:Android16进阶之读取byte数据AudioRecord.read:用法实例基本概念read(byte[], int, int) 通过AudioRecord将底层共享内存中的原始音频数据拷贝到用户提供的 byte 数组,返回实际读取字节数,是 PCM 采集、文件写入、网络发送的核心入口。功能支持 byte[]、short[]、float[]、ByteBuffer、DirectByteBuffer;阻塞直到数据就绪;与 startRecording、缓冲区大小联动;无需权限;
2026-01-03 07:30:00
810
原创 Android16音频之开始录制AudioRecord.startRecording:用法实例(一百七十四)
本篇目的:Android16进阶之开始录制AudioRecord.startRecording:用法实例基本概念startRecording通过AudioRecord将实例从初始化状态切换到录制状态,硬件开始写入共享内存,之后可循环read();是录音、语音识别、VoIP的起始触发点。功能立即切换状态;与stop()、release()成对;与音频源、格式、缓冲区联动;无需权限;适用于任意传输模式。使用限制需在build()后调用;状态异常时抛IllegalStateException;
2026-01-03 07:00:00
1194
原创 Android16音频之设置缓冲区大小AudioRecord.Builder.setBufferSizeInBytes:用法实例(一百七十三)
本篇目的:Android16进阶之设置缓冲区大小AudioRecord.Builder.setBufferSizeInBytes:用法实例基本概念setBufferSizeInBytes通过AudioRecord.Builder指定共享内存字节容量,系统向上对齐到硬件页,直接影响延迟、抖动、欠载阈值,是低延迟与稳定性设计的核心参数。功能支持任意正整数;与getMinBufferSize、采样率、编码联动;无需权限;构建时生效;与getNativeFrameCount互补。使用限制。
2026-01-02 07:30:00
1186
原创 Android16音频之设置输入音频格式AudioRecord.Builder.setAudioFormat:用法实例(一百七十二)
本篇目的:Android16进阶之设置输入音频格式AudioRecord.Builder.setAudioFormat:用法实例基本概念setAudioFormat通过AudioRecord.Builder指定采样率、声道掩码、位深/编码,系统据此选择硬件路径、缓冲区对齐、DSP格式,直接影响延迟、兼容性、功耗。功能支持16000-192000 Hz、CHANNEL_IN_MONO/STEREO、ENCODING_PCM_16BIT/FLOAT;与setAudioSource、设备能力联动;
2026-01-02 07:00:00
703
原创 XUbuntu22.04之视频编辑利器:kdenlive剪切视频片段+自动转码输出(二百八十七)
本篇目的:XUbuntu22.04之视频编辑利器:kdenlive剪切视频片段+手动转码输出概览Kdenlive 是 KDE 社区出品的开源非线性视频编辑器,支持 Linux、Windows、macOS,以 FFmpeg 为引擎,几乎兼容所有音视频格式,完全免费且无广告。时间线多轨道时间线支持无限视频/音频/字幕层,可嵌套序列;拖拽即可调整顺序,波纹、滚动、滑动、滑移四大修剪工具齐全,J/K/L 回放+I/O 打点让粗剪效率翻倍。特效与过渡。
2026-01-01 11:03:28
1112
原创 Android16音频之设置输入音源AudioRecord.Builder.setAudioSource:用法实例(一百七十一)
本篇目的:Android16进阶之设置输入音源AudioRecord.Builder.setAudioSource:用法实例基本概念setAudioSource通过AudioRecord.Builder指定录音输入源(如MIC、CAMCORDER、VOICE_COMMUNICATION等),系统据此选择硬件路径、启用回声消除、配置增益策略。功能支持CAMCORDER、MIC、VOICE_COMMUNICATION、VOICE_RECOGNITION、UNPROCESSED等常量;
2026-01-01 07:30:00
1634
原创 Android16音频之重新加载静态数据AudioTrack.reloadStaticData:用法实例(一百七十)
本篇目的:Android16进阶之重新加载静态数据AudioTrack.reloadStaticData:用法实例基本概念reloadStaticData通过AudioTrack将已写入的静态缓冲区重新加载到起点,无需再次write,即可立即重播同一PCM,用于无缝循环、节拍器、采样垫等场景。功能仅作用于MODE_STATIC;与setLoopPoints互补;无需重新write;与硬件DSP同步;无需权限。使用限制需在stop()后或play()中调用;缓冲区必须已write;
2026-01-01 07:00:00
1591
原创 Android16音频之获取原生帧数AudioTrack.getNativeFrameCount:用法实例(一百六十九)
本篇目的:Android16进阶之获取原生帧数AudioTrack.getNativeFrameCount:用法实例基本概念getNativeFrameCount通过AudioTrack返回底层共享内存的实际帧容量(帧=采样点×声道),用于精确计算延迟、水位、欠载阈值,与getBufferCapacityInFrames互补。功能立即返回long帧数;与setBufferSizeInBytes联动;与采样率、声道数无关;无需权限;适用于任意传输模式。使用限制需在构建后调用;
2025-12-31 07:30:00
680
原创 Android16音频之获取音频性能指标AudioTrack.getMetrics:用法实例(一百六十八)
本篇目的:Android16进阶之获取音频性能指标AudioTrack.getMetrics:用法实例基本概念getMetrics通过AudioTrack返回一个PersistableBundle,内含播放周期内的底层性能数据:欠载次数、硬件延迟、填充间隔、offload切换次数等,用于线上监控、自动化对比、用户反馈定位。功能支持欠载(underrun)、延迟(latency)、offload切换(offload_switch)等键值;与日志会话ID联动;无需权限;适用于任意传输模式;
2025-12-31 07:00:00
751
原创 Android16音频之获取日志会话AudioTrack.getLogSessionId:用法实例(一百六十七)
本篇目的:Android16进阶之获取日志会话AudioTrack.getLogSessionId:用法实例基本概念getLogSessionId通过AudioTrack返回当前实例绑定的日志会话ID,用于确认追踪标记、状态回显、自动化校验,与setLogSessionId成对使用。功能立即返回String ID;与setLogSessionId联动;无需权限;适用于任意传输模式;与系统日志、Perfetto、bugreport联动。使用限制需在setLogSessionId后调用;
2025-12-30 07:30:00
978
原创 Android16音频之设置日志会话AudioTrack.setLogSessionId:用法实例(一百六十六)
本篇目的:Android16进阶之设置日志会话AudioTrack.setLogSessionId:用法实例基本概念setLogSessionId通过AudioTrack为当前实例绑定一个日志会话ID,实现播放生命周期、延迟、欠载等事件的统一追踪,便于线上监控、自动化测试、用户反馈定位。功能支持任意String ID;与系统日志、Perfetto、bugreport联动;无需权限;立即生效;适用于任意传输模式。使用限制需在play()前或play()后设置;ID长度建议≤64字符;
2025-12-30 07:00:00
539
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订阅