Browse Source

refactor(ble_service): 移除MTU检查和音频发送限制

移除MTU大小检查和音频数据分片发送逻辑,简化音频发送流程
weicu
lxm 12 months ago
parent
commit
0f7d39daf3
  1. 22
      local_plugins/ble_service/android/src/main/kotlin/com/yunqiinnovation/ble_service/BleService.kt

22
local_plugins/ble_service/android/src/main/kotlin/com/yunqiinnovation/ble_service/BleService.kt

@ -866,7 +866,7 @@ object BleService {
setupNotifications(g, notifyChar)
// 在服务发现完成后,请求最大MTU
requestMaxMtu(g)
//requestMaxMtu(g)
}
@ -1097,7 +1097,7 @@ object BleService {
// 从队列中取出音频数据块
val audioChunk = audioSendQueue.poll(100, TimeUnit.MILLISECONDS)
if (audioChunk != null&&!isWaitingForWriteCallback) {
if (audioChunk != null) {
// 发送音频数据块并等待回调
sendAudioChunkWithCallback(audioChunk)
Thread.sleep(AUDIO_SEND_INTERVAL)
@ -1138,14 +1138,14 @@ object BleService {
return
}
// 检查数据块大小是否超过当前MTU限制
val maxDataSize = currentMtu - 5 // 减去ATT头部5字节
if (chunk.size > maxDataSize) {
Log.w(TAG, "数据块过大 (${chunk.size} > $maxDataSize),分片发送")
// 分片发送
sendChunksInFragments(chunk, maxDataSize)
return
}
// // 检查数据块大小是否超过当前MTU限制
// val maxDataSize = currentMtu - 5 // 减去ATT头部5字节
// if (chunk.size > maxDataSize) {
// Log.w(TAG, "数据块过大 (${chunk.size} > $maxDataSize),分片发送")
// // 分片发送
// sendChunksInFragments(chunk, maxDataSize)
// return
// }
// 在主线程中执行蓝牙写入操作
audioSendHandler.post {
@ -1166,7 +1166,7 @@ object BleService {
isWaitingForWriteCallback = false
recordfile1?.saveAudioDataToWav("发送失败,大小: ${chunk.size} 字节")
Log.e(TAG, "发送音频数据块失败,大小: ${chunk.size} 字节")
analyzeWriteFailure(chunk)
// analyzeWriteFailure(chunk)
}
} catch (e: Exception) {

Loading…
Cancel
Save