diff --git a/app/src/main/java/com/ouxuan/oxface/device/GateABController.java b/app/src/main/java/com/ouxuan/oxface/device/GateABController.java index 503ae88..8f4e80b 100644 --- a/app/src/main/java/com/ouxuan/oxface/device/GateABController.java +++ b/app/src/main/java/com/ouxuan/oxface/device/GateABController.java @@ -8,6 +8,9 @@ import com.ouxuan.oxface.network.NetworkConfig; import com.ouxuan.oxface.network.api.PadApiService; import com.ouxuan.oxface.network.model.ApiResponse; import com.ouxuan.oxface.utils.LogManager; +import com.ouxuan.oxface.utils.VenueSceneUtils; +import com.ouxuan.oxface.device.voice.VoicePlayerManager; +import com.ouxuan.oxface.device.voice.VoiceType; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; import retrofit2.Call; @@ -51,6 +54,9 @@ public class GateABController { // 网络API服务 private PadApiService acControlApiService; + // 添加VoicePlayerManager实例 + private VoicePlayerManager voicePlayerManager; + /** * AB门状态类 * 记录AB门的开关状态,用于触发门禁不可用弹窗 @@ -219,6 +225,14 @@ public class GateABController { this.context = context; this.deviceDataManager = DeviceSelectDataManager.getInstance(context); + // 初始化语音播放管理器 + try { + voicePlayerManager = VoicePlayerManager.getInstance(); + LogManager.logInfo(TAG, "GateABController语音播放管理器初始化完成"); + } catch (Exception e) { + LogManager.logError(TAG, "GateABController语音播放管理器初始化失败", e); + } + // 初始化485通信模块 ox485.initialize(context); @@ -245,6 +259,21 @@ public class GateABController { public void openGateAB(GateControlCallback callback) { LogManager.logInfo(TAG, "开始执行AB门开门操作"); + // 播放开门提示语音 + if (voicePlayerManager != null && context != null) { + // 根据场景判断播放进场还是离场语音 + boolean isLeaveScene = VenueSceneUtils.isLeaveScene(context); + if (isLeaveScene) { + voicePlayerManager.playVoice(VoiceType.VERIFICATION_SUCCESS_LEAVE); + LogManager.logInfo(TAG, "播放离场开门语音提示"); + } else { + voicePlayerManager.playVoice(VoiceType.VERIFICATION_SUCCESS_ENTRY); + LogManager.logInfo(TAG, "播放进场开门语音提示"); + } + } else { + LogManager.logWarning(TAG, "语音播放管理器未初始化或上下文为空,跳过语音播放"); + } + executorService.execute(new Runnable() { @Override public void run() {