如何在 FMX Windows 上使用 Delphi 10.4.2 将麦克风录制到 MP3?

问题描述 投票:0回答:2

在 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 上,而且我还没有收到他回复的电子邮件。)

delphi mp3 firemonkey delphi-10.4-sydney
2个回答
3
投票

根据文档(参见FireMonkey中的音频-视频音频录制),支持的捕获格式是:

  • Windows 上的 WAV
  • iOS 和 Mac 上的 CAF
  • Android 上的 3GP

在 Windows 上,

TAudioCaptureDevice
使用 DirectShow,不支持捕获 MP3,仅支持播放

因此,如果您想录制MP3文件,则必须在录制后将其转换为WAV文件。 有很多第三方库可供您使用。 否则,您将必须自己捕获并保存麦克风音频,例如直接使用平台 API 而不是使用 FireMonkey。


2
投票

对于Windows目标,[MfPack][1]包含整个媒体基础API并支持mp3和mp4。 [1]:https://github.com/FactoryXCode/MfPack

© www.soinside.com 2019 - 2024. All rights reserved.