我正在学习C++特别关于二进制文件结构/操作,因为我对二进制文件,位,咬和十六进制数字的主题完全不熟悉,所以我决定向后退一步,对主题建立一个扎实的理解.
在下面我已经包含的图片中,我blue thief在一个.txt文件中写了两个单词().

原因是,当我使用hexeditor解码文件时,我想了解信息是如何以十六进制格式存储的.现在,不要误解我的意思,我并不是试图通过整天阅读十六进制格式来谋生,而只是对二进制文件组合的基本知识有最低限度的理解.我也知道所有文件都有不同的结构,但只是为了理解,我想知道,"蓝色小偷"和单个' '(空格)这些词是如何被转换成这些字符的.
还有一件事是,我听说二进制文件包含三种类型的信息:
header,ftm&和data!那只关注音频,视频等多媒体文件吗?因为,我似乎看不到任何东西,除了它看起来data只是这个文件中的一块.
我是Java新手,虽然我已经掌握了语法和结构,但我很难从麦克风中获取处理过的数字音频样本.
我想要实现的是非常简单的,而从长远来看,我正在尝试创建一个非常简单的频谱图,但只是为了理解/掌握我试图从头开始的音频处理过程.
这是我的问题
当麦克风检测到一声嘟嘟声或任何声音时,我想捕获那些二进制数据,并只是以原始格式显示它.
JAVA要求真的太多了吗?
我已经阅读过有关模拟/数字信号,FFT,matlab的内容,我搜索了许多链接,如下所示:
和甲骨文的着名介绍
http://docs.oracle.com/javase/tutorial/sound/capturing.html
但他们都无法为我的答案提供解决方案.
我不是要求代码,虽然它会很棒,只是阅读每一行并理解所涉及的机制,但一个简单的提示也会很好.
这是一个简单的代码,用于捕获字节,但仅限于现有wav文件
import java.io.FileInputStream;
import java.io.IOException;
public class Boo{
public static void main(String[] arguments){
try {
FileInputStream file = new FileInputStream("beep.wav");
boolean eof = false;
int count = 0;
while(!eof){
int input = file.read();
System.out.print(input + "");
if(input == -1)
eof = true;
else
count++;
}
file.close();
System.out.println("\nBytes read: " + count);
}catch (IOException e){
System.out.println("Error - " + e.toString());
}
} …Run Code Online (Sandbox Code Playgroud)