云计算百科
云计算领域专业知识百科平台

Pulseaudio进阶开发之音频路由实战案例(三十四)

简介: CSDN博客专家、《Android系统多媒体进阶实战》作者

博主新书推荐:《Android系统多媒体进阶实战》🚀 Android Audio工程师专栏地址: Audio工程师进阶系列【原创干货持续更新中……】🚀 Android多媒体专栏地址: 多媒体系统工程师系列【原创干货持续更新中……】🚀 专题一 二:AAOS车载系统+AOSP14系统攻城狮入门视频实战课 🚀 专题三:Android14 Binder之HIDL与AIDL通信实战课 🚀 专题四:Android15快速自定义与集成音效实战课 🚀 专题五:Android15音频策略实战课 🚀 专题六:Android15音频性能实战课(无声/杂音/断音/爆音实战案例) 🚀

人生格言: 人生从来没有捷径,只有行动才是治疗恐惧和懒惰的唯一良药.

更多原创,欢迎关注:Android系统攻城狮

欢迎关注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
赞(0)
未经允许不得转载:网硕互联帮助中心 » Pulseaudio进阶开发之音频路由实战案例(三十四)
分享到: 更多 (0)

评论 抢沙发

评论前必须登录!