Browse Source

fix(音频处理): 新增荣耀设备检测方法,仅在检测到荣耀设备时启用通话音频模式

weicu
lxm 1 year ago
parent
commit
213a6f8552
  1. 27
      local_plugins/azure_speech/android/src/main/kotlin/com/yunqiinnovation/azure_speech/tools/SimpleAudioReceiver.kt

27
local_plugins/azure_speech/android/src/main/kotlin/com/yunqiinnovation/azure_speech/tools/SimpleAudioReceiver.kt

@ -16,6 +16,7 @@ import android.media.AudioManager
import android.media.AudioFocusRequest
import android.media.AudioAttributes
import com.yunqiinnovation.azure_speech.tools.RecordFile
import android.os.Build // 新增:用于获取设备信息
/**
* 简单音频接收器类,用于处理音频录制和流传输
@ -232,13 +233,35 @@ class SimpleAudioReceiver(private val context: Context) {
}
}
/**
* 判断是否为荣耀手机
* @return true 如果是荣耀手机,false 否则
*/
private fun isHonorDevice(): Boolean {
val brand = Build.BRAND?.lowercase() ?: ""
val manufacturer = Build.MANUFACTURER?.lowercase() ?: ""
val model = Build.MODEL?.lowercase() ?: ""
// 检查品牌、制造商或型号中是否包含荣耀相关标识
return brand.contains("honor") ||
manufacturer.contains("honor") ||
model.contains("honor") ||
brand.contains("荣耀") ||
manufacturer.contains("荣耀")
}
/**
* 运行麦克风捕获
*/
private fun runMicrophoneCapture() {
try {
// 首先设置通话音频模式
//setupCommunicationAudioMode()
// 根据手机品牌决定是否设置通话音频模式
if (isHonorDevice()) {
Log.d(TAG, "检测到荣耀设备,启用通话音频模式")
setupCommunicationAudioMode()
} else {
Log.d(TAG, "非荣耀设备,跳过通话音频模式设置")
}
val supportedSampleRates = intArrayOf(16000, 8000, 11025, 22050, 44100)
val sampleRate = supportedSampleRates.firstOrNull { rate ->
val bufferSize = AudioRecord.getMinBufferSize(rate, channelConfig, audioFormat)

Loading…
Cancel
Save