self.open_start = 0 #是否需要超时关闭静默录音
self.voice_timer_out = osTimer()
self.voice_mode = 0
+ self.record_fd = None
def post_processor_after_instantiation(self):
EventMesh.subscribe("start_voice_record", self.start_voice_record)#开始静默录音
#获取录音数据
def Voice_record_thread(self):
+ EventMesh.publish(constants.EVENT.SYSTEM_UP)#唤醒休眠
+ EventMesh.publish("wakeup_BT")
+ self.record_len_tmp = 0
+ self.record_fd_len = 0
while True:
try:
Record_len = self.record.stream_read(Record_read_buf, self.Audio_buf_size)
if Record_len > 0:
read_buf = bytes(Record_read_buf[:Record_len])
+
+ # if self.record_fd == None and self.record_fd_len <300*1024:
+ # try:
+ # uos.remove('/usr/record_data1.pcm')
+ # except Exception as e:
+ # usys.print_exception(e)
+ # self.record_fd = open('/usr/record_data1.pcm','w')
+ # self.record_fd_len = 0
+ # if self.record_fd != None:
+ # try:
+ # if self.record_fd_len <300*1024:
+ # self.record_fd.write(read_buf)
+ # print("write record:{}".format(len(read_buf)))
+ # self.record_fd_len = self.record_fd_len+len(read_buf)
+ # if self.record_fd_len >=300*1024:
+ # self.record_fd.close()
+ # self.record_fd = None
+ # except Exception as e:
+ # usys.print_exception(e)
+ # self.record_len_tmp = self.record_len_tmp+len(read_buf)
+ # print("write record_len:{} len{}".format(len(read_buf),self.record_len_tmp))
+ # #print("前10个字节:{} 后10个字节{}".format(Record_read_buf[0:10],Record_read_buf[len(read_buf)-10:len(read_buf)]))
+ EventMesh.publish("system_sleep_rest")#防止黑屏
+ #EventMesh.publish("wakeup_BT")
try:
#发送静默录音数据到iot平台
if self.voice_mode == 1: #静默录音开始发送
EventMesh.publish("SEND_JINMOAUDIO_TO_IOT",[read_buf,self.msgid_int,self.start_voice_record_flag])
-
+ pass
elif self.voice_mode == 2: #语音留言开始
EventMesh.publish("SEND_YUYINAUDIO_TO_IOT",[read_buf,self.msgid_int,self.start_voice_record_flag])
# print("voice Record_len:{}".format(Record_len))
except Exception as e:
usys.print_exception(e)
- utime.sleep_ms(100)
+ if self.record_fd != None:
+ utime.sleep_ms(1)
+ else:
+ utime.sleep_ms(100)
self.start_voice_record_flag = 0
print("Voice_record_thread:exit")
self.voice_record_thread_id = 0
-
+ if self.record_fd != None:
+ self.record_fd.close()
+ self.record_fd = None