¿Cómo grabar un micrófono en MP3 con Delphi 10.4.2 en FMX Windows?

CorePress2024-01-24  9

En FMX Delphi 10.4.2 estoy grabando audio con este código:

  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;

Esto no parece crear un archivo MP3 auténtico. Quizás todavía esté creando un archivo WAV pero solo con la extensión MP3.

¿Este componente puede crear un archivo MP3? De no ser así, ¿existe algún componente que cree archivos MP3? (Los componentes de Mitov no parecen instalarse en Delphi 10.4.2 y todavía no he recibido una respuesta por correo electrónico de él al respecto).

Si abre el archivo en un editor hexadecimal, será evidente si es un archivo WAV o MP3.

-Andreas Rejbrand

26/03/2021 a las 20:13

@AndreasRejbrand ...o un contenedor WAV con compresión MP3. Todavía tengo esos archivos. :)

AmigoJack

26/03/2021 a las 20:33



------------------------------------

Según la documentación (ver Audio-Video en FireMonkey y Grabación de audio), los formatos de captura admitidos son:

WAV en Windows CAF en iOS y Mac 3GP en Android

En Windows, TAudioCaptureDevice usa DirectShow, queno admite la captura de MP3, sólo su reproducción.

Entonces, si desea grabar un archivo MP3, deberá convertir el archivo WAV después de grabarlo. Hay muchas bibliotecas de terceros que puedes usar para eso. De lo contrario, tendrás que capturar y guardar el audio del micrófono tú mismo, por ejemplo, usando las API de la plataforma directamente en lugar de usar FireMonkey.

5

Solo por curiosidad, ¿sabes si Media Foundation apoya esto? Actualización: así parece.

- Andreas Rejbrand

26/03/2021 a las 20:23

Sí, Media Foundation admite la codificación MP3.

- Rémy Lebeau

26/03/2021 a las 20:27

Sin embargo, aparentemente solo en Windows 8 y posteriores.

-Andreas Rejbrand

26/03/2021 a las 20:29

Tengo problemas para encontrar una biblioteca de terceros que funcione. Acabo de probar BASS, que tiene tres proyectos de demostración como tutoriales. La primera demostración requiere una DLL que no funcionará con mi proyecto. La segunda y tercera demostraciones fallan al convertir de WAV a MP3.

- Mike en Bookup

26/03/2021 a las 21:41

Entonces no dudes en publicar preguntas separadas sobre esos temas.

- Rémy Lebeau

26/03/2021 a las 21:42



------------------------------------

[MfPack][1]contiene toda la API de Media Foundation y admite mp3 y mp4. [1]: https://github.com/FactoryXCode/MfPack

Su guía para un futuro mejor - libreflare
Su guía para un futuro mejor - libreflare