如何在 FMX Windows 上使用 Delphi 10.4.2 将麦克风录制到 MP3?
How to record microphone to MP3 with Delphi 10.4.2 on FMX Windows?
在 FMX Delphi 10.4.2 中,我正在使用以下代码录制音频:
var
fMicrophone: TAudioCaptureDevice;
begin
fMicrophone := TCaptureDeviceManager.Current.DefaultAudioCaptureDevice;
if fMicrophone = nil
then
begin
ShowMessage('Audio capturing device not available');
Exit;
end;
MicFilterStringLabel.Text := fMicrophone.FilterString; // filter is *.wav
RecordButton.Enabled := False;
StopButton.Enabled := True;
// Sets the name of the file to save the recorded data
fMicrophone.FileName := TPath.Combine(gPreferences.TemporaryFolder, 'samplefile.mp3');
fMicrophone.StartCapture;
end;
// later the stop button calls fMicrophone.StopCapture;
这似乎无法创建真实的 MP3 文件。也许它仍在制作 WAV 文件,但只是带有 MP3 扩展名。
这个组件可以制作MP3文件吗?
如果做不到这一点,是否有可以制作 MP3 文件的组件? (mitov 组件似乎没有安装在 Delphi 10.4.2 上,我还没有收到他的电子邮件回复。)
根据文档(参见Audio-Video in FireMonkey and Audio Recording),支持的捕获格式为:
- Windows
上的 WAV
- CAF 在 iOS 和 Mac
- 3GP Android
在Windows上,TAudioCaptureDevice
使用DirectShow,不支持捕捉 MP3,只播放 .
所以,如果你想录制一个MP3文件,你必须在录制后转换成WAV文件。您可以为此使用大量第 3 方库。否则,您将不得不自己捕获并保存麦克风音频,例如直接使用平台 API 而不是使用 FireMonkey。
在 FMX Delphi 10.4.2 中,我正在使用以下代码录制音频:
var
fMicrophone: TAudioCaptureDevice;
begin
fMicrophone := TCaptureDeviceManager.Current.DefaultAudioCaptureDevice;
if fMicrophone = nil
then
begin
ShowMessage('Audio capturing device not available');
Exit;
end;
MicFilterStringLabel.Text := fMicrophone.FilterString; // filter is *.wav
RecordButton.Enabled := False;
StopButton.Enabled := True;
// Sets the name of the file to save the recorded data
fMicrophone.FileName := TPath.Combine(gPreferences.TemporaryFolder, 'samplefile.mp3');
fMicrophone.StartCapture;
end;
// later the stop button calls fMicrophone.StopCapture;
这似乎无法创建真实的 MP3 文件。也许它仍在制作 WAV 文件,但只是带有 MP3 扩展名。
这个组件可以制作MP3文件吗? 如果做不到这一点,是否有可以制作 MP3 文件的组件? (mitov 组件似乎没有安装在 Delphi 10.4.2 上,我还没有收到他的电子邮件回复。)
根据文档(参见Audio-Video in FireMonkey and Audio Recording),支持的捕获格式为:
- Windows 上的 WAV
- CAF 在 iOS 和 Mac
- 3GP Android
在Windows上,TAudioCaptureDevice
使用DirectShow,不支持捕捉 MP3,只播放 .
所以,如果你想录制一个MP3文件,你必须在录制后转换成WAV文件。您可以为此使用大量第 3 方库。否则,您将不得不自己捕获并保存麦克风音频,例如直接使用平台 API 而不是使用 FireMonkey。