【发布时间】:2019-01-27 00:50:27
【问题描述】:
当我想以字节级别处理音频时,我总是将其转换为 .wav 格式,然后进行处理。例如,在我的上一个项目中,我试图为我的音频文件生成一种特殊的波形图像,以便在视频剪辑中使用它。然后我使用在线工具将我的 .mp3 文件转换为 .wav 文件(单声道,8 位,6KHz),然后我以编程方式制作了我的波形图。
现在我希望能够直接对 .mp3 文件进行处理而无需转换,如下面的代码:
aFrom := 60000; // From 00:01:00.000
aLength := 20000; // 20 Second
aChannels := 1; // mono
aBitsPerChannel := 8;
aFreq := 6000;
aBufSize := Open_MP3_As('d:\Until The Last Moment.mp3',
aBuffer, aFrom, aLength,
aChannels, aBitsPerChannel, aFreq);
for i := 0 to aBufSize - 1 do
begin
// Processing aBuffer[i]
end;
这只是展示我的想法的一个例子。如您所见,.mp3 文件的元数据和详细信息对我来说并不重要。
这将非常有用,因为我可以将此功能嵌入到我的音频工具中,让用户更快、更轻松地使用我的工具。我知道这可能是一个非常复杂的代码,因为首先必须将 .mp3 文件转换为 .wav 文件(具有特定的给定参数),然后必须删除标题,将其切片并放入 aBuffer并返回 aBuffer 中的样本数量。
【问题讨论】:
-
有大量的库/组件可随时用于处理音频/媒体数据。你环顾四周了吗?您尝试过其中任何一个吗?
-
你知道吗,我可以像我写的代码一样简单地使用它们?或者我必须与一些复杂的(也许不是免费的)组件作斗争,然后我增加了我的项目的大小。
-
您要做的工作越少,您使用的库就越多。这可能意味着一个较小的项目使用一个更大的库。无论如何,第 3 方的建议都是题外话。
-
是的,你是对的,但我正在寻找一个真正的答案,有人可以推荐一个免费的图书馆,我可以用它做同样的事情吗?
-
@MohammadAhmadzadeh 去检查一些允许 mp3 播放和搜索功能的音频库。为什么要有搜索功能?因为在大多数情况下,此类库还能够呈现您正在寻找的 waweform 的粗略视觉表示。 Unrotunately 我没有任何免费的经验。但我确实对 BASS 音频库 (un4seen.com) 有一些经验,它具有这样的功能等等。但它不是免费的。
标签: delphi buffer mp3 waveform audio-processing