两个i2s,一个i2s1_cfg.type = AUDIO_STREAM_WRITER;用做录音,一个 i2s2_cfg.type = AUDIO_STREAM_READER;
i2s_stream_init(&i2s_cfg); 只有第一个能够初始成功,第二个在初始化时会报错:
E (8362) I2S: register I2S object to platform failed
分析代码,只能有一个i2s设备注册,再注册时会报错。
有什么解决办法?
不能够同时播放和录音
-
- Posts: 184
- Joined: Fri Dec 15, 2017 2:45 am
Re: 不能够同时播放和录音
你可以参考这个既录音又放音的例程, https://github.com/espressif/esp-adf/tr ... ve_to_file
Re: 不能够同时播放和录音
多谢回复,现在已经找到能够同时录音和播放的方法了,音频流编码为opus,一个核对音频解码,voip_read_stream-->opus_decoder->I2S,
另一个核对录音数据进行opus编码,I2S->opus_decoder->voip_writer.
结果cpu受不了,播放卡顿,录音录了一堆杂音。cpu已经调到240Mhz了。不断触发watchdog wdt异常。
有什么建议没有?
另一个核对录音数据进行opus编码,I2S->opus_decoder->voip_writer.
结果cpu受不了,播放卡顿,录音录了一堆杂音。cpu已经调到240Mhz了。不断触发watchdog wdt异常。
有什么建议没有?
Re: 不能够同时播放和录音
另通过audio_element_set_read_cb设置opus_decoder的read函数,每次只读200个字节,但如果让opus_decoder与另一个audio_element对接,则每次读1024个字节,为什么两者相差这么大?
哪里有opus_decoder这个audio_element的源码?
哪里有opus_decoder这个audio_element的源码?
-
- Posts: 184
- Joined: Fri Dec 15, 2017 2:45 am
Re: 不能够同时播放和录音
关于 task wdt 可以逐步注释一些 task 来定位下,看看是否有 while 死循环一直占用 CPU。
Who is online
Users browsing this forum: No registered users and 25 guests