当我想处理字节级的音频时,我总是将其转换为.wav格式,然后进行处理。例如,在上一个项目中,我试图生成一种特殊的音频文件波形图像,以便在视频剪辑中使用。然后我用一个在线工具把我的.mp3文件转换成.wav文件(mono,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中的样本量。