add pause handle

This commit is contained in:
jiegeaiai 2024-10-24 08:53:11 +08:00
parent d95288d63e
commit 1cc2617022
3 changed files with 14 additions and 0 deletions

View File

@ -40,6 +40,10 @@ class HumanRender(AudioHandler):
type_ = 0 type_ = 0
self._video_render.put((res_frame, idx, type_)) self._video_render.put((res_frame, idx, type_))
def pause_handle(self):
if self._video_render.size() > self._context.batch_size * 2:
super().pause_handle()
def pause_talk(self): def pause_talk(self):
self._voice_render.pause_talk() self._voice_render.pause_talk()
self._video_render.pause_talk() self._video_render.pause_talk()

View File

@ -14,6 +14,13 @@ class AudioHandler(ABC):
def on_handle(self, stream, index): def on_handle(self, stream, index):
pass pass
@abstractmethod
def pause_handle(self):
if self._handler is not None:
self._handler.pause_handle()
else:
logging.info(f'_handler is None')
@abstractmethod @abstractmethod
def stop(self): def stop(self):
pass pass

View File

@ -30,6 +30,9 @@ class BaseRender(ABC):
ps = time.time() - self._play_clock.start_time ps = time.time() - self._play_clock.start_time
self._queue.put_nowait((frame, ps)) self._queue.put_nowait((frame, ps))
def size(self):
return self._queue.qsize()
def pause_talk(self): def pause_talk(self):
self._queue.queue.clear() self._queue.queue.clear()