MWR_LOGD("[ENTER]");
unique_lock<mutex> lock(mMutex, defer_lock);
+ bool finish_event_sent = false;
lock.lock();
auto lead = mAudioData.begin();
if (MAS_SPEECH_STREAMING_EVENT_FINISH == speech_data.event) {
MWR_LOGI("[INFO] Finish to get and send speech data");
+ finish_event_sent = true;
break;
}
advance(lead, 1);
}
+
+ if (true != finish_event_sent) {
+ unsigned char final_buffer[2] = {'\0', };
+ for (const auto& observer : mObservers) {
+ if (observer) {
+ if (!observer->on_streaming_audio_data(
+ MAS_SPEECH_STREAMING_EVENT_FINISH, final_buffer, sizeof(final_buffer))) {
+ LOGE("[Recorder WARNING] One of the observer returned false");
+ }
+ }
+ }
+ }
MWR_LOGD("[EXIT]");
}