您的位置:首页 > 移动开发 > Android开发

android电话接通状态下,关机铃声无法从外放输出

2014-09-04 08:47 141 查看
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;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: