-
Notifications
You must be signed in to change notification settings - Fork 2
Open
Description
你好,我们发现每次频道被关闭时会有5%左右的CPU降不下来,下面代码加入最后一行后 CPU 能讲下来,不过后面的功能会出问题,有时会收不到新的频道的音频数据,能帮忙排查一下吗?
` async def disconnect(self) -> None:
"""
Disconnects the channel.
"""
logger.info(f"ai call Disconnecting from channel {self.channelId}")
if self.connection_state == 1:
return
disconnected_future = asyncio.Future[None]()
def callback(agora_rtc_conn: RTCConnection, conn_info: RTCConnInfo, reason):
self.off("connection_state_changed", callback)
if conn_info.state == 1:
disconnected_future.set_result(None)
self.on("connection_state_changed", callback)
if self.stream_message_task:
self.stream_message_task.cancel()
try:
await self.stream_message_task
except asyncio.CancelledError:
logger.info(f"ai call stream message task cancelled")
if self.chat.message_task:
self.chat.message_task.cancel()
try:
await self.chat.message_task
except asyncio.CancelledError:
logger.info(f"ai call message task cancelled")
self.connection.disconnect()
await disconnected_future
self.connection.release()`
Metadata
Metadata
Assignees
Labels
No labels