【问题标题】:Sound. How exactly does it work? [closed]声音。它究竟是如何工作的? [关闭]
【发布时间】:2011-11-30 22:11:34
【问题描述】:

我希望能够制作我自己类型的声音文件。实际上播放一段声音几秒钟然后继续下一部分ext...

例如,图像(如果您想到位图)具有像素。每个像素都有一定的颜色变化,由十六进制标识。

如果我想绘制图像,我会读取图像文件,找到合适的 id,并在该位置显示特定的颜色。

如何...声音是如何工作的?它的 hz 和流式传输就像一个视频,所以它会不会通过在那个“时刻”以一定程度播放特定的 HZ 来识别它,然后移动到下一个?

我可能会使用 C++ 或 Java 来制作/播放它,因此我们将不胜感激。

【问题讨论】:

    标签: java c++ audio


    【解决方案1】:

    未压缩的声音文件通常与包括采样率、通道数和每个样本的位数(除其他外)等信息一起存储。

    除此之外,它们还定义了样本集合。这些样本以恒定的间隔(采样率)出现,并以文件指定的样本格式表示幅度。

    您可以将其视为类似具有更少域和更高采样频率(相当于 fps)的电影图像。每一帧代表一个幅度而不是一个图像。

    lisndfile 可能是了解音频文件结构的良好起点 - 它支持多种格式。

    【讨论】:

      【解决方案2】:

      你的问题有点含糊,但我会解释像 .wav 这样的格式的基本概念:

      每隔一段时间捕捉声波:

      Hz 用于确定间隔的大小。如果绘制在图表上,它会类似于它产生的声波。

      【讨论】:

      • 对不起,让我说得更清楚一点。在 C 或 Java 中与声卡对话并实际播放声音的方法是什么?例如...对于图像(不是字面意思),它将是 display(pixelID:Hexa,x,y,z) 并循环遍历直到完成。对于声音,它会是.....play(....HZid?)...
      • @sfxworks OS 应该提供一个函数,或者你可以使用 OpenAL 之类的库。
      猜你喜欢
      • 1970-01-01
      • 2020-05-16
      • 2014-04-30
      • 1970-01-01
      • 1970-01-01
      • 2020-06-04
      • 2016-02-01
      • 2014-05-16
      • 1970-01-01
      相关资源
      最近更新 更多