【发布时间】:2021-11-27 12:39:44
【问题描述】:
我想用 C# 制作一个简单的 .wav 播放器用于学习目的。我想更深入地了解音频是如何在计算机上存储和播放的,所以我想手动播放 .wav,而不是简单地调用内置函数。
我查看了 .wav 文件的结构并找到了一些很棒的资源。我发现 wav 文件格式存储从第 44 个字节开始的声音数据。它包含有关先前字节中的通道和采样率的数据,但这与我的问题无关。
我发现这个数据是soundwave。据我所知,声波样本的高度代表它的频率。但是我不明白音色是从哪里来的?如果我只以正确的频率在正确的时间内播放声音,我会听到哔哔声。我可以简单地用System.Console.Beep(freq, duration); 播放它们,但你几乎不能称之为音乐。
我尝试过查看多个资源,但它们只描述了元数据,并没有涵盖声音字节流中的确切内容。我在这个网站上找到了similar question and answer,但它并没有真正回答这个问题,我相信它甚至没有被标记为接受。
波形字节流中的数据究竟是什么?如何将其变为计算机上实际播放的声音?
【问题讨论】: