gpt4 book ai didi

dart - 来自现有 ByteBuffer 区域的新 Dart ByteBuffer?

转载 作者:行者123 更新时间:2023-12-02 01:09:59 25 4
gpt4 key购买 nike

我在 Dart Web 应用程序中加载二进制文件,其中包含压缩音频数据作为二进制数据的一部分。当数据通过 http 请求加载时,它作为一个 ByteBuffer 出现,我理解它是 Dart 对 JS ArrayBuffer 的替代。 AudioContext.decodeAudioData() 方法需要一个 ByteBuffer,我试图弄清楚如何给它加载的 ByteBuffer 的相关部分。加载的 ByteBuffer 包含与音频无关的附加数据。 JS 中的 ArrayBuffers 支持 slice() 方法,但是我在 ByteBuffer 类中缺少它,并且在转换为允许范围选择的任何列表后,我看不到任何返回到 ByteBuffer 的方法。

我想我可以用原始 JS 创建一个混合解决方案,但如果可能的话,我想将它保留在 Dart 中。想法赞赏!

最佳答案

Dart ByteBuffer没有切片方法。您可以仔细阅读 Uint8List ,而不是 buffer.slice(a, b)你做buffer.asUint8List().sublist(a, b).buffer . sublist类型数据列表上的方法返回由新缓冲区支持的相同类型的列表,buffer getter 返回任何类型数据列表的底层缓冲区。
不如slice漂亮直接在缓冲区上,但它可以在没有任何对齐问题的情况下完成工作(Int32List 要求其起始偏移量是 4 字节对齐的,因此对于任意切割,始终使用 8 位列表)。

关于dart - 来自现有 ByteBuffer 区域的新 Dart ByteBuffer?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45526297/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com