首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Java - Wav文件-空字节?

Java - Wav文件-空字节?
EN

Stack Overflow用户
提问于 2012-03-26 19:29:59
回答 3查看 842关注 0票数 0

我有个奇怪的问题。现在,我能够读取wav文件样本,并在处理后,将其再次保存到文件中。但是对于我的项目,我必须用空值修改一些字节。我的意思是,如果我把一些整数放入wav文件中(例如:25的二进制形式),这意味着声卡将给我们25的电信号(我可能对声卡和wav文件的概念有一些误解)。

但在我的项目中,我需要将wav值放入wav文件中。就像当声卡读取二进制形式的25时,它会给出信号,但之后会有空字节,声卡不会给出任何电信号,因为另一个值到来了。

我知道,我不能恰当地表达我的问题。让它更容易理解;

假设有这样存储的文件

代码语言:javascript
复制
data[] = {10,12,13,14,15,14,13,12,11,10};

我想把它做成

代码语言:javascript
复制
data[]= {10,12,13,14,null,null,null,12,11,10}

当声卡读取这些数据时,它会给我们提供例如

代码语言:javascript
复制
10 voltage,12 voltage,13 voltage,14 voltage,no any signal,no any signal,no any signal,12 voltage, 11 voltage, 10 voltage}
EN

回答 3

Stack Overflow用户

发布于 2012-03-26 19:34:45

我怀疑WAV文件是否有在波形中间表示“无信号”的特定方式。(粗略阅读一下this description似乎就能证实这一点。)

我认为你最好的办法就是在没有信号的地方简单地使用零。(显然,需要使用您选择的编解码器对零进行编码。)

顺便说一下,即使WAV文件确实有一种表示“无信号”的方法,它也不涉及将Java值放入null字节数组中。Java字节数组不能包含null%s ...永远不会。Java语言规范禁止这样做。

票数 0
EN

Stack Overflow用户

发布于 2012-03-26 19:36:37

在处理字节时,不能将null放入文件中--每个字节必须是256个位组合中的一个。

当声卡返回no any signal时,到底是什么意思?这不是等同于零电压(即在文件中使用整数值0 )吗?或者你使用null作为占位符来表示“未知”?

您可能仍然没有完全表达您的问题-听起来您已经决定需要将空值放在一个文件中,而您似乎没有证明这是合理的。你真正想要实现的是什么(而不是“在WAV中放入空值”)--这对零有效吗?

票数 0
EN

Stack Overflow用户

发布于 2012-03-26 19:45:56

没有“空信号”。如果你的意思是不想要输出,只需要发送0(如果你使用的是有符号的值)。如果使用无符号值(Java不支持),请为8位样本发送128,为16位样本发送32768。

所以就说

代码语言:javascript
复制
data[]= {10,12,13,14,0,0,0,12,11,10};

后面跟着类似这样的东西

代码语言:javascript
复制
yourSoundCardObject.write(data); //The method write is hypothetical

你们的抽样率是多少?

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

https://stackoverflow.com/questions/9871292

复制
相关文章

相似问题

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