【已解决】【TuyaOS SDK】概率性出现录像文件长度为0,但存在10秒音视频文件的问题
【问题描述】:
我们在测试的时候发现有推送,但是没有本地录像文件,我们通过查看SD卡录像文件,发现存在1691155490_0000这种长度为0的文件夹,但是改文件夹里存在一个10秒的视频。我们是涂鸦PC播放器播放改文件也能正常播放。
【问题描述】:
我们在测试的时候发现有推送,但是没有本地录像文件,我们通过查看SD卡录像文件,发现存在1691155490_0000这种长度为0的文件夹,但是改文件夹里存在一个10秒的视频。我们是涂鸦PC播放器播放改文件也能正常播放。
1.请问是低功耗设备吗?录像在当前片段完成后,才会对文件夹重命名成utc_录像时长。
对,是低功耗设备。这个当前片段不太明白,是我们主动调SDK停止接口还是SDK内部处理的?
我们本地录像模块接口使用流程大致为:
1.MQTT上线后调用tuya_ipc_ss_init()接口初始化本地录像模块
2.调用tuya_ipc_ss_set_pre_record_time(3)接口设置预录时长3秒
3.调用tuya_ipc_ss_set_write_mode(SS_WRITE_MODE_ALL)接口开始录像
4.等待事件处理完进入低功耗模式时调用tuya_ipc_ss_set_write_mode(SS_WRITE_MODE_NONE)来停止录像
5.调用tuya_ipc_ss_uninit()接口释放本地录像模块
6.主控发指令给MCU,MCU给主控下电。
注:
第3步到第6步执行完,中间可能只有400-500毫秒。
这个流程是否符合你们的设计逻辑?tuya_ipc_ss_set_write_mode(SS_WRITE_MODE_ALL)接口会停止当前目录,然后对文件夹进行重命名吗?
tuya_ipc_ss_set_write_mode(SS_WRITE_MODE_ALL)是异步的接口。
对于低功耗产品,在第4、5步之间需要等待数据落盘,可以轮训判断下tuya_ipc_ss_get_status()、或则调用tuya_ipc_stop_event_with_storage_sync。
主控下电前,建议执行下sync()调用。
1.目前下电前有调用sync()接口确保将缓存中的数据全部写入本地存储。
2.如果用tuya_ipc_ss_get_status()接口是不是判断返回值为E_STORAGE_STOP时就可以保证SDK内部数据同步完成了?
2、是的
修改后目前还没复测到问题,非常感谢回复!