Tdy95 最近的时间轴更新
Tdy95

Tdy95

V2EX 第 231384 号会员,加入于 2017-05-19 10:00:06 +08:00
今日活跃度排名 3607
根据 Tdy95 的设置,主题列表被隐藏
二手交易 相关的信息,包括已关闭的交易,不会被隐藏
Tdy95 最近回复了
@pursuer 我是直接在 message_handle.py 文件创建了一个全局变量。main_loop = asyncio.get_event_loop()
@pursuer 代码乱码了。我贴个图
[Imgur]( https://imgur.com/Y46UeJ4)


[Imgur]( https://imgur.com/2sNE2LK)
@pursuer 我已经修改了,发现 future 一直没变化。
```
def callback_speak_by_audio(code, status, frame_id, client_id):
client_id = client_id.decode('utf-8') # 解码客户端 ID
status = json.loads(status.decode('utf-8')) # 假设 status 是 UTF-8 编码的字符串
print(f"callback_speak_by_audio=====run, {client_id in futures_speak_by_audio_stream}")
if status["data"]["FrameId"] == -1:
if code == MSDKStatus.MSDK_SUCCESS_SPEAK_BY_AUDIO_FINISH.value:
print(f"语音说话: {code}, 客户端 ID: {client_id}")
asyncio.run_coroutine_threadsafe(set_futures_status_async(client_id, futures_speak_by_audio_stream, {"code": 204, "status": status, "name": "speak_by_audio", "success": True, "client_id": client_id}), websocketAll[client_id]['main_loop'])


async def set_futures_status_async(client_id, futures_obj, data):
if client_id in futures_obj:
future = futures_obj.pop(client_id)
if not future.done():
future.set_result(data)


```

外部调用形式为:
```
if connected["audio_future"] is None:
feature = asyncio.Future()
connected["audio_future"] = feature
print("Creating sendAudioEndData task")
asyncio.create_task(sendAudioEndData(connected, feature))

async def sendAudioEndData(connected, feature):
print("发送音频结束数据")
try:
result = await feature # 等待 feature 完成
print(f"发送音频结束数据: {result}")
await connected['websocket'].send(json.dumps(result))
except Exception as e:
print(f"发送数据时发生错误: {e}")
finally:
connected["audio_future"] = None # 确保音频 future 被正确重置

```

麻烦大佬再指点一下,是哪里不对呢?从日志结果看,“语音说话:”的日志已经执行。 但是后续的 sendAudioEndData 的 print(f"发送音频结束数据: {result}")没有执行。
@fds 谢谢老哥,我去试试看
@LinePro 我是发现在调用 dll 后,5s 后返回结果。 但是再等 5s 后才会执行 await 后的代码。我是让 AI 给出的 while not future.done() 代码
疼一下就过去了,忍一忍,比牙痛好受
@fds node 对接 dll 和 so 的能力还是太弱了,python 这块方便很多。Python 之前么咋用过,全靠 AI 磕磕碰碰写出来的代码。结果被异步搞自闭了 T T
以前没玩过只狼,现在每天 打铁 铛铛铛
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1025 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 16ms · UTC 22:52 · PVG 06:52 · LAX 15:52 · JFK 18:52
Developed with CodeLauncher
♥ Do have faith in what you're doing.