0

我确定我错过了与 actionscript 3 相关的一些基本内容,但我没有太多使用它的经验

我的问题的背景:

从麦克风录制的声音需要通过基于 prop http 的协议(使用安全套接字)发送到后端。为此,语音字节每 20 毫秒(或使用编解码器的 80 字节)“成帧”(即在记录字节之前注入一些成帧字节),并通过打开的套接字连接推出。

所以我认为实现这一目标的最佳方法是将记录的数据样本存储到一个字节数组 B 中,当我每 80 个字节时,它仍在被写入

  • 从 B 读取最后记录的 80 个字节
  • 前置帧字节
  • 将生成的字节数组推出套接字

现在,如果我从 bytearray B 读取该操作会重置 bytearria 的指针,并且当一个新的语音字节进来时,它肯定会覆盖指针之后的字节?

我怎样才能避免这种情况发生?

感谢您的任何指示。

4

1 回答 1

0

请注意文档状态,您可以重置以下的指针(位置ByteArray

将文件指针的当前位置(以字节为单位)移动或返回到 ByteArray 对象中。这是对 read 方法的下一次调用开始读取或 write 方法开始写入的点。

position因此,您可以在执行读取操作之前重置并以这种方式管理 FIFO。

但我认为使用字节数组作为 FIFO 可能会有问题:

  • 您想删除刚从 FIFO 中读取的字节,除了clear()清除整个数组之外,我没有看到任何 API 可以做到这一点。
  • 麦克风的声音可能SampleDataEvents会如此频繁地进入,以至于效率降低或有问题

保留从每个 SampleDataEvent 获得的单个 ByteArray 的 FIFO(带有数组)可能会更容易。

于 2012-08-24T00:39:09.517 回答