我想编写一个程序集x86程序,我在其中读取并播放.wav文件。我搜索了一个典型的.wav文件的结构,发现子块部分中有一些数据。
我已理解以下内容,并且我想确定它是否正确以便我可以开始编码:
采样率只是将原始模拟信号采样到数字值(可能代表频率)的速率。我想我在播放.wav文件时与此值无关。字节是我必须发送字节的速率(以某种方式与“比特率”相关,可以在任何声音文件的“属性”中找到。)
所以例如我必须打开扬声器,发出字节,等待一段时间 - 通过时钟的频率和字节速率(在一段时间内发送的字节数)以某种方式计算一秒钟) - 关闭扬声器并再次等待一段时间。 这是对的吗?
我不知道我能用2通道.wav文件做什么。通道扬声器是不同的端口吗?
最后一件事是我不知道如何计算打开或关闭扬声器的时间 - 空闲循环CPU - 手头有字节速率。 Coz不同的指令需要不同的时钟周期来完成。
答案 0 :(得分:0)
WAV文件是从编解码器派生的线性样本。您必须以相同的速率播放它们,除非您插入或抽取它们。
我记得,WAV文件格式使用多个通道的交错。
为了解码文件,您需要样本的宽度(位数),采样频率(赫兹)以及存在的通道数。
这是什么操作系统?