-1

我想编写一个汇编 x86 程序,在其中读取和播放 .wav 文件。我用谷歌搜索了一个典型的 .wav 文件的结构,发现子块部分中有一些数据可用。

我已经理解了以下内容,我想确定它是否正确以便我可以开始编码:
采样率只是将原始模拟信号采样为数字值(可能代表频率)的速率。我想我在播放 .wav 文件时与这个值无关。Byterate 是我必须发送字节的速率(某种程度上与可以在任何声音文件的“属性”中找到的“比特率”相关。)。

因此,例如,我必须打开扬声器,发送字节,等待一段时间——这是通过时钟频率和字节速率(在一秒内发送的字节数)以某种方式计算出来的- 关闭扬声器并再次等待一段时间。这个对吗?

而且我不知道我可以用 2 通道 .wav 文件做什么。不同端口的通道扬声器?

最后一件事是我不知道如何计算打开或关闭扬声器的时间量 - CPU 空闲循环 - 手头有字节速率。因为不同的指令需要不同的时钟周期来完成。

4

1 回答 1

0

WAV 文件是从编解码器派生的线性样本。除非您对它们进行插值或抽取,否则您必须以相同的速率播放它们。

我记得,WAV 文件格式对多个通道使用交错。

为了解码文件,您需要样本的宽度(位数)、采样频率(赫兹)和存在的通道数。

这是什么操作系统?

于 2013-06-27T21:38:12.637 回答