首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用ByteArray实现FIFO并读取fifo,而FIFO仍在写入

用ByteArray实现FIFO并读取fifo,而FIFO仍在写入
EN

Stack Overflow用户
提问于 2012-08-23 23:57:02
回答 1查看 324关注 0票数 0

我确信我缺少一些与actionscript 3相关的基本内容,但我没有多少使用它的经验。

我问题的背景:

麦克风录制的声音需要通过基于http的支柱协议(使用安全套接字)发送到后端。为了实现这一点,语音字节每20 use(或使用编解码器的80字节)每20 use注入一次(即在记录字节之前注入一些帧字节),并通过打开的套接字连接推送。

因此,我认为最好的方法是将记录的数据存储到字节数组B中,这个字节仍在被写入到每80个字节时

  • 从B读取最后记录的80个字节
  • 将帧字节放在前面
  • 将结果字节数组推出套接字。

现在,如果我从字节数组B中读取,操作会重置bytearrya的指针,当一个新的语音字节出现时,它肯定会覆盖指针后面的字节?

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

谢谢你的指点。

EN

回答 1

Stack Overflow用户

发布于 2012-08-24 00:39:09

注意,可以重置ByteArray的指针(ByteArray)的docs状态。

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

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

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

  • 您可能希望删除刚才从FIFO中读取的字节,除了清除整个数组的clear()之外,我没有看到任何API可以这样做。
  • 可能来自麦克风的SampleDataEvents会如此频繁地出现,从而降低效率或出现问题

保持一个FIFO (使用一个数组)就更容易了,您可以从每个SampleDataEvent中获得一个独立的ByteArray。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12101588

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档