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;
    }
  • 相关阅读:
    网络爬虫基础练习
    综合练习-词频统计
    组合数据类型
    【Hadoop】Hadoop综合大作业
    理解MapReduce操作
    Hadoop-熟悉常用的HDFS操作
    python-爬取中药信息
    Pytthon-数据结构化与保存
    python-爬取校园新闻首页的新闻
    python-爬虫基础
  • 原文地址:https://www.cnblogs.com/zfyouxi/p/5160731.html
Copyright © 2011-2022 走看看