三星平台 android audio 架构探讨点滴积累之二

     今天基本调完了android 3G 通话功能,各种情况的下的audio path 切换,音量调整等一系列功能。但是音质还不是很好,模拟干扰比较多,有待改善。

      先说一下电话 audio path 切换,总得来说切换分为两种情况:通话时path切换,铃声时path切换。

      响铃时切换:

const AudioMixer *AudioHardware::getOutputRouteFromDevice(uint32_t device)
{
// LOGD("getOutputRouteFromDevice(%d)**********************************", device);
    switch (device) {
    case AudioSystem::DEVICE_OUT_EARPIECE:
        return device_out_RCV;
    case AudioSystem::DEVICE_OUT_SPEAKER:
        if (mMode == AudioSystem::MODE_RINGTONE) return device_out_RING_SPK;
        else return device_out_SPK;
    case AudioSystem::DEVICE_OUT_WIRED_HEADPHONE:
        if (mMode == AudioSystem::MODE_RINGTONE) return device_out_RING_NO_MIC;
        else return device_out_HP_NO_MIC;
    case AudioSystem::DEVICE_OUT_WIRED_HEADSET:
        if (mMode == AudioSystem::MODE_RINGTONE) return device_out_RING_HP;
        else return device_out_HP;
    case (AudioSystem::DEVICE_OUT_SPEAKER|AudioSystem::DEVICE_OUT_WIRED_HEADPHONE):
    case (AudioSystem::DEVICE_OUT_SPEAKER|AudioSystem::DEVICE_OUT_WIRED_HEADSET):
        if (mMode == AudioSystem::MODE_RINGTONE) return device_out_RING_SPK_HP;
        else return device_out_SPK_HP;
    case AudioSystem::DEVICE_OUT_BLUETOOTH_SCO:
    case AudioSystem::DEVICE_OUT_BLUETOOTH_SCO_HEADSET:
    case AudioSystem::DEVICE_OUT_BLUETOOTH_SCO_CARKIT:
        return device_out_BT;       
    default:
        return device_out_OFF;
    }
}

  该函数获取音频输出时的各各路径,当然包括电话来电响铃。其判断的已经就是device的不同,根据不同的device选择不同的path配置。

 通话时的path切换也是类似的:

   const AudioMixer *AudioHardware::getVoiceRouteFromDevice(uint32_t device)
{
// LOGD("getVoiceRouteFromDevice(%d)**********************************", device);
    switch (device) {
    case AudioSystem::DEVICE_OUT_EARPIECE:
        return device_voice_RCV;
    case AudioSystem::DEVICE_OUT_SPEAKER:
        return device_voice_SPK;
    case AudioSystem::DEVICE_OUT_WIRED_HEADPHONE:
    case AudioSystem::DEVICE_OUT_WIRED_HEADSET:
        switch (mTTYMode) {
        case TTY_MODE_VCO:
            return device_voice_TTY_VCO;
        case TTY_MODE_HCO:
            return device_voice_TTY_HCO;
        case TTY_MODE_FULL:
            return device_voice_TTY_FULL;
        case TTY_MODE_OFF:
        default:
            if (device == AudioSystem::DEVICE_OUT_WIRED_HEADPHONE) {
                return device_voice_HP_NO_MIC;
            } else {
                return device_voice_HP;
            }
        }
    case AudioSystem::DEVICE_OUT_BLUETOOTH_SCO:
    case AudioSystem::DEVICE_OUT_BLUETOOTH_SCO_HEADSET:
    case AudioSystem::DEVICE_OUT_BLUETOOTH_SCO_CARKIT:
        return device_voice_BT;
    default:
        return device_voice_OFF;
    }
}



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
YOLO高分设计资源源码,详情请查看资源内容中使用说明 YOLO高分设计资源源码,详情请查看资源内容中使用说明 YOLO高分设计资源源码,详情请查看资源内容中使用说明 YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值