diff --git a/local_plugins/azure_speech/android/src/main/kotlin/com/yunqiinnovation/azure_speech/tools/SimpleAudioReceiver.kt b/local_plugins/azure_speech/android/src/main/kotlin/com/yunqiinnovation/azure_speech/tools/SimpleAudioReceiver.kt index 0505ff46d..bec452ee3 100644 --- a/local_plugins/azure_speech/android/src/main/kotlin/com/yunqiinnovation/azure_speech/tools/SimpleAudioReceiver.kt +++ b/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)