gpt4 book ai didi

c# - 如何将byte []视为Int16 []?

转载 作者:行者123 更新时间:2023-12-03 00:05:41 26 4
gpt4 key购买 nike

我正在通过System.Runtime.InteropServices.Marshal.Copy()从音频输入中接收一些原始数据,并将其存储在byte []中。我知道该byte []中的实际数据为Int16类型。我想将此byte []当作是Int16类型的数组,并对其元素进行循环,对其进行处理,最后,我希望将此更改后的数组作为byte []传递给另一个函数。

对于那些想知道我要做什么的人:我想尝试通过简单地将来自前一个缓冲区的波形数据与来自当前缓冲区的波形数据相加,从而将回声效果添加到传入声音(来自麦克风)中,降低音量。

编辑:byte []数组可能将int16数字258存储为一对字节[1] [2]

0000 0001 0000 0010

最佳答案

据我所知,你不能。

我建议您使用Buffer.BlockCopy将数据复制到short[]中,对其进行处理,然后再将其复制回去。当然,这假定字节以适当的字节序排列...但是很可能会这样。

或者...使用overload of Marshal.Copy which accepts a short[] 将数据复制到开始。

关于c# - 如何将byte []视为Int16 []?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4518299/

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