简介: CSDN博客专家、《Android系统多媒体进阶实战》作者
博主新书推荐:《Android系统多媒体进阶实战》🚀 Android Audio工程师专栏地址: Audio工程师进阶系列【原创干货持续更新中……】🚀 Android多媒体专栏地址: 多媒体系统工程师系列【原创干货持续更新中……】🚀 专题一 二:AAOS车载系统+AOSP14系统攻城狮入门视频实战课 🚀 专题三:Android14 Binder之HIDL与AIDL通信实战课 🚀 专题四:Android15快速自定义与集成音效实战课 🚀 专题五:Android15音频策略实战课 🚀 专题六:Android15音频性能实战课(无声/杂音/断音/爆音实战案例) 🚀
人生格言: 人生从来没有捷径,只有行动才是治疗恐惧和懒惰的唯一良药.
更多原创,欢迎关注:Android系统攻城狮
🍉🍉🍉文章目录🍉🍉🍉
-
- 🌻1.前言
- 🌻2.开发需求
- 🌻3.解决方案
-
- 3.1 音频路由控制入口
- 3.2 音频路由在播放和录音流程中的位置
- 🐓4.实战案例
-
- 4.1 路由验证准备
- 4.2 查看当前播放路由
- 4.3 设置server默认播放设备
- 4.4 为单个应用临时指定播放设备
- 4.5 迁移已经存在的播放流
- 4.6 设置server默认录音设备
- 4.7 为单个应用临时指定录音设备
- 4.8 迁移已经存在的录音流
- 4.9 配置module-stream-restore历史路由
- 4.10 切换sink播放端口
- 4.11 切换source录音端口
- 4.12 切换声卡profile
- 4.13 配置端口自动切换策略
- 4.14 配置新设备接入自动切换
- 4.15 蓝牙音频路由
- 4.16 在default.pa中固定启动路由
- 4.17 验证最终路由
- 🌻5.常见问题定位
-
- 5.1 设置了默认sink,为什么应用还是走旧设备?
- 5.2 修改默认sink后,已有播放流为什么没有迁移?
- 5.3 move-sink-input失败怎么办?
- 5.4 插入耳机后为什么没有自动切换?
- 5.5 蓝牙耳机连接后为什么没有声音?
- 5.6 为什么某个应用总是回到以前的设备?
- 5.7 切换card profile后为什么sink消失了?
- 5.8 USB声卡接入后为什么抢占默认设备?
- 5.9 设置了set-sink-port,为什么没有声音?
- 🌻6.总结
🌻1.前言
本篇目的:Pulseaudio进阶开发之音频路由实战案例
- 1.音频路由:主要控制PulseAudio中的播放流和录音流最终连接到哪个音频设备。播放路由负责把sink-input连接到目标sink,录音路由负责把source-output连接到目标source,同时还会受到默认设备、历史路由、设备可用状态、端口状态、声卡profile和策略模块影响。
🌻2.开发需求
通过PulseAudio音频路由机制控制应用播放设备、录音设备、耳机切换、USB声卡切换、蓝牙路由和嵌入式固定音频拓扑,让音频流向更稳定、更可控。
实际开发中常见需求:
| 设置server默认播放设备 | pactl set-default-sink或default.pa | daemon.conf | 默认sink属于server侧路由策略 |
| 设置server默认录音设备 | pactl set-default-source或default.pa |
网硕互联帮助中心




评论前必须登录!
注册