D10:
authordxy15521469561 <1731678236@qq.com>
Thu, 21 Sep 2023 10:01:10 +0000 (18:01 +0800)
committerdxy15521469561 <1731678236@qq.com>
Thu, 21 Sep 2023 10:01:10 +0000 (18:01 +0800)
修改播放音频用线程

2.sdk/project/D10/sdk/services/microPython/ports/quectel/core/btn_device_ec800m.py

index 4c27be3..cfdced7 100644 (file)
@@ -75,6 +75,11 @@ class intervManager(Abstract):
         _thread.start_new_thread(self.interInfo_queue_thread, ())
         EventMesh.subscribe("publish_message_event_interInfo",self.publish_message_event_interInfo)
         
+
+        self.audio_event_queue = Queue()
+        _thread.start_new_thread(self.audio_event_queue_thread, ())
+        EventMesh.subscribe("publish_message_event_audio",self.publish_message_event_audio)
+
         self.record_test = audio.Record()
         self.record_test.gain(4,12)
 
@@ -181,7 +186,26 @@ class intervManager(Abstract):
             str_data = 'mp3files={}.mp3'.format(audio_buf.index("R_WECHAT_RECV"))
             EventMesh.publish("play_audio_file",[str_data,1])#获取播放音频文件
 
-    def play_audio_file(self,event,str_data):#msg 拼接的路径文件
+
+
+    def audio_event_queue_thread(self):
+        while True:
+            data = self.audio_event_queue.get()
+            #print("interInfo_queue_thread:data = {}".format(data))
+            if data != None:
+                try:
+                    data["func"](data["data"])
+                except Exception as e:
+                    print("interInfo_queue_thread:ERROR:{}".format(e))
+                    usys.print_exception(e)
+    def publish_message_event_audio(self,event,msg):
+        self.audio_event_queue.put(msg)
+
+    def play_audio_file(self, *args, **kwargs):#拨打电话
+        # print("args",args)
+        EventMesh.publish("publish_message_event_audio",{"func":self.play_audio_file_do,"data":args[1]})  
+
+    def play_audio_file_do(self,data):#msg 拼接的路径文件
         open_power = EventMesh.publish("get_power_on_state")#获取开机标识
         power_off = EventMesh.publish("get_power_off_state")#获取开机标识
         if open_power != None:
@@ -190,8 +214,8 @@ class intervManager(Abstract):
         if power_off != None:
             if power_off == 1:
                 return
-        print("play_audio_file",str_data[0],str_data[1])#路径 str_data[1] 是否需要被打断
-        self.aud.montage_play('U:/static/audio.bin',1,str_data[1],str_data[0])
+        print("play_audio_file",data[0],data[1])#路径 str_data[1] 是否需要被打断
+        self.aud.montage_play('U:/static/audio.bin',1,data[1],data[0])
 
     
 
@@ -206,6 +230,7 @@ class intervManager(Abstract):
                 except Exception as e:
                     print("interInfo_queue_thread:ERROR:{}".format(e))
                     usys.print_exception(e)
+
     def publish_message_event_interInfo(self,event,msg):
         self.interInfo_queue.put(msg)