我确信我遗漏了与动作3相关的基本内容,但我没有太多使用它的经验
我的问题的背景:
从麦克风录制的声音需要通过支持基于http的协议(使用安全套接字)发送到后端。为了实现这一点,语音字节被“成帧”(即一些成帧字节在记录的字节之前注入)每20ms(或使用编解码器的80字节)并通过打开的套接字推出连接。所以我认为最好的方法就是将记录的数据样本存储到一个字节数组B中,当我每80个字节时,它仍然被写入
现在,如果我从字节数组B读取操作,则操作会重置bytearrya的指针,当新的语音字节进入时,肯定会覆盖指针后的字节?
我怎样才能避免这种情况发生?
感谢您的任何指示。
答案 0 :(得分:0)
请注意,文档说明您可以重置ByteArray
的指针(position):
将文件指针的当前位置(以字节为单位)移动或返回ByteArray对象。这是读取方法的下一次调用开始读取或写入方法开始写入的时间点。
因此,您可以在执行读取操作之前重置position
并以此方式管理FIFO。
但我认为使用字节数组作为FIFO可能会有问题:
clear()
之外,我没有看到任何API这样做。SampleDataEvents
可能会频繁出现,以致效率降低或出现问题从每个SampleDataEvent中获取单个ByteArray的FIFO(带有数组)可能更容易。