如何在FMX Windows下用Delphi 10.4.2将麦克风录制成MP3?

o3imoua4  于 2022-09-21  发布在  Windows
关注(0)|答案(2)|浏览(203)

在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上,我还没有收到他关于这一点的电子邮件回复。)

raogr8fs

raogr8fs1#

根据文档(请参阅Audio-Video in FireMonkeyAudio Recording),支持的捕获格式包括:

  • Windows上的wav
  • iOS和Mac上的咖啡馆
  • Android上的3GP

在Windows上,TAudioCaptureDevice使用的是DirectShow,不支持捕获MP3,只支持播放MP3。

因此,如果你想录制一个MP3文件,你将不得不在录制后转换为wav文件。有很多第三方库可以用来实现这一点。否则,您将不得不自己捕获并保存麦克风音频,例如直接使用平台API,而不是使用FireMonkey。

e5njpo68

e5njpo682#

[MfPack][1]包含完整的媒体基础API,支持mp3和mp4。[1]:https://github.com/FactoryXCode/MfPack

相关问题