zoukankan      html  css  js  c++  java
  • android电话接通状态下,关机铃声无法从外放输出

    AudioMTKPolicyManager.cpp的startOutput方法中。将在newDevic获取到的后面加入:
    if(stream==AudioSystem::BOOT)newDevice|=AUDIO_DEVICE_OUT_SPEAKER;
     
    status_t AudioMTKPolicyManager::startOutput(audio_io_handle_t output,
                                                 AudioSystem::stream_type stream,
                                                 int session)
    {
        ALOGD("startOutput() output %d, stream %d, session %d", output, stream, session);
        ......
        if (outputDesc->mRefCount[stream] == 1) {
            audio_devices_t newDevice = getNewDevice(output, false /*fromCache*/);
            routing_strategy strategy = getStrategy(stream);
            bool shouldWait = (strategy == STRATEGY_SONIFICATION) ||
                                (strategy == STRATEGY_SONIFICATION_RESPECTFUL);
            uint32_t waitMs = 0;
            bool force = false;
            if(stream==AudioSystem::BOOT) newDevice|=AUDIO_DEVICE_OUT_SPEAKER;
            for (size_t i = 0; i < mOutputs.size(); i++) {
                AudioOutputDescriptor *desc = mOutputs.valueAt(i);
                if (desc != outputDesc) {
                    // force a device change if any other output is managed by the same hw
                    // module and has a current device selection that differs from selected device.
                    // In this case, the audio HAL must receive the new device selection so that it can
                    // change the device currently selected by the other active output.
                    if (outputDesc->sharesHwModuleWith(desc) &&
                        desc->device() != newDevice) {
                        force = true;
                    }
                    // wait for audio on other active outputs to be presented when starting
                    // a notification so that audio focus effect can propagate.
                    uint32_t latency = desc->latency();
                    if (shouldWait && desc->isActive(latency * 2) && (waitMs < latency)) {
                        waitMs = latency;
                    }
                }
            }
          ......      
        }
        return NO_ERROR;
    }
  • 相关阅读:
    PHP PSR 标准规范
    PHP线程安全与非线程安全的区别(NTS/TS)选择?
    goto 语法在 PHP 中的使用
    linux命令post请求发送json串
    接口日志表sql【我】
    sentinel最简单接入【我】
    Jps命令—使用详解
    MyBatis-Plus Wrapper条件构造器查询大全
    IDEA项目启动不起来也不打印日志【我】
    linux下查看nginx配置文件地址
  • 原文地址:https://www.cnblogs.com/zfyouxi/p/5160731.html
Copyright © 2011-2022 走看看