Browse Source

Merge branch 'new_dev' of https://github.com/deepcloud2048/deep_voice into liwei_temp3

weicu
liwei1dao 1 year ago
parent
commit
b0486f1afd
  1. 4
      android/app/src/main/AndroidManifest.xml
  2. 2
      lib/data/services/ble_manager.dart
  3. 4
      lib/data/services/version_update_service.dart
  4. 27
      local_plugins/azure_speech/android/src/main/kotlin/com/yunqiinnovation/azure_speech/tools/SimpleAudioReceiver.kt
  5. 2
      pubspec.yaml

4
android/app/src/main/AndroidManifest.xml

@ -29,9 +29,9 @@
<!-- <uses-permission android:name="android.permission.MANAGE_EXTERNAL_STORAGE"
tools:ignore="ScopedStorage" /> -->
<!-- Android 13+ 媒体权限 -->
<uses-permission android:name="android.permission.READ_MEDIA_IMAGES" />
<!-- <uses-permission android:name="android.permission.READ_MEDIA_IMAGES" />
<uses-permission android:name="android.permission.READ_MEDIA_VIDEO" />
<uses-permission android:name="android.permission.READ_MEDIA_AUDIO" />
<uses-permission android:name="android.permission.READ_MEDIA_AUDIO" /> -->
<uses-permission android:name="android.permission.ACCESS_MEDIA_LOCATION" />
<!-- 添加悬浮窗权限,可能有助于解决前台服务启动问题 -->
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />

2
lib/data/services/ble_manager.dart

@ -532,7 +532,7 @@ class BleManager extends GetxService {
try {
// 从.env文件直接读取环境变量
var serverurl = dotenv.env['SERVER_URL'] ?? '';
if (Get.locale?.countryCode != 'CN') {
if (Get.deviceLocale?.countryCode != 'CN') {
serverurl = dotenv.env['HW_SERVER_URL'] ?? '';
}

4
lib/data/services/version_update_service.dart

@ -30,7 +30,9 @@ class VersionUpdateService extends GetxService {
static final String? _countryCode = Get.deviceLocale?.countryCode; //国家地区编码
static final String? _languageCode = Get.deviceLocale?.languageCode; //语言编码
// ignore: non_constant_identifier_names
static final String? _SERVER_URL = dotenv.env['SERVER_URL']; //服务器地址
static final String? _SERVER_URL = (_countryCode == 'CN')
? dotenv.env['SERVER_URL']
: dotenv.env['HW_SERVER_URL']; //服务器地址
// 添加 getter 方法来访问缓存的静态数据
/// 获取缓存的应用版本

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)

2
pubspec.yaml

@ -1,7 +1,7 @@
name: voitrans
description: "Voitrans - AI Voice Assistant."
publish_to: "none"
version: 1.0.10+20
version: 1.0.10+25
environment:
sdk: ">=3.3.0 <4.0.0"

Loading…
Cancel
Save