|
|
|
@ -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) |
|
|
|
|