Quellcode durchsuchen

修复蓝牙断开后 停止播放

onecold vor 6 Monaten
Ursprung
Commit
1c6a7c7e81
1 geänderte Dateien mit 19 neuen und 10 gelöschten Zeilen
  1. 19 10
      entry/src/main/ets/view/LocalMusic.ets

+ 19 - 10
entry/src/main/ets/view/LocalMusic.ets

@@ -1012,7 +1012,7 @@ export struct LocalMusic {
     this.mIjkMediaPlayer.on('audioInterrupt', event);
     // 音频设备断连回调处理比如蓝牙耳机断开
     let deviceChangeEvent: Callback<InterruptEvent> = (event) => {
-      LogUtils.getInstance().LOGI(`Heanup deviceChange event: ${JSON.stringify(event)}`);
+      console.info(`onecold Heanup deviceChange event: ${JSON.stringify(event)}`);
       if (event.reason === DeviceChangeReason.REASON_NEW_DEVICE_AVAILABLE) { // 音频设备连接
 
       } else if (event.reason === DeviceChangeReason.REASON_OLD_DEVICE_UNAVAILABLE) { // 音频设备断开连接
@@ -1030,12 +1030,25 @@ export struct LocalMusic {
       this.pause();
 
     });
-
-    // 有线耳机断开和连接的监听。监听音频设备状态变化。
     let audioManager = audio.getAudioManager();  // 需要先创建AudioManager实例。
     let audioRoutingManager = audioManager.getRoutingManager();  // 再调用AudioManager的方法创建AudioRoutingManager实例。
+    // 监听蓝牙音响断开音频设备状态变化。
+    audioRoutingManager.on('deviceChange', audio.DeviceFlag.OUTPUT_DEVICES_FLAG, (deviceChanged: audio.DeviceChangeAction) => {
+      console.info(`onecold device change type : ${deviceChanged.type}`);  // 设备连接状态变化,0为连接,1为断开连接。
+      console.info(`onecold device descriptor size : ${deviceChanged.deviceDescriptors.length}`);
+      console.info(`onecold device change descriptor : ${deviceChanged.deviceDescriptors[0].deviceRole}`);  // 设备角色。
+      console.info(`onecold device change descriptor : ${deviceChanged.deviceDescriptors[0].deviceType}`);
+      if(deviceChanged.type==1&&
+        (deviceChanged.deviceDescriptors[0].deviceType== 7||
+          deviceChanged.deviceDescriptors[0].deviceType==8)){
+        console.info('heanup onecold 蓝牙音响断开, 暂停播放')
+        this.pause();
+      }
+    });
+
+    // 有线耳机断开和连接的监听。监听音频设备状态变化。
     audioRoutingManager.on('deviceChange', audio.DeviceFlag.INPUT_DEVICES_FLAG, (deviceChanged: audio.DeviceChangeAction) => {
-      console.info('device change type : ' + deviceChanged.type);  // 设备连接状态变化,0为连接,1为断开连接。
+      console.info('onecold device change type : ' + deviceChanged.type);  // 设备连接状态变化,0为连接,1为断开连接。
       // 设备类型 22是USB耳机,带麦克风,3是有线耳机。
       if(deviceChanged.type==1&&
         (deviceChanged.deviceDescriptors[0].deviceType== 22||
@@ -1254,11 +1267,7 @@ export struct LocalMusic {
       }
 
     }
-    if(this.volumeSmall){
-      this.volume = 0.5
-    }else{
-      this.volume = 1
-    }
+
     //如果是hicar连接状态,这些都是false
     if(this.isHiCar()){
       this.autoHideTitle = false
@@ -10066,7 +10075,7 @@ export struct LocalMusic {
   private positionX: number = PlayConstants.POSITION_X;
   private positionY: number = PlayConstants.POSITION_Y;
   private windowClass: window.Window = globalThis.windowClass
-  @State volume: number = 0.5;
+  @State volume: number = 0.8;
   @State volumeSmall: boolean = false
   @State autoParseMusicName: boolean = true
   @State isShowFileName: boolean = false