Go Up to Tutorial: FireMonkey Audio-Video
This tutorial demonstrates how to use FireMonkey to capture audio media data.
Supported File Formats
We recommend that you save and use media files in the following formats according to the platform:
.cafon iOS and Mac OS X
You also can play other types of media files, such as MP3 files.
- Select File > New > FireMonkey Desktop Application - Object Pascal > HD FireMonkey Application.
- Add a TGridLayout to the form. With the layout in focus, make the following settings in the Object Inspector:
- Add two TFlowLayout objects to the TGridLayout (the second flow layout will be used in the next tutorial: Playing Audio Files).
- Add the following to the first TFlowLayout:
- Change the name of the two buttons to RecordButton and StopButton.
- Set the StopButton as disabled by setting the Enable property of the button to False.
- Add a TSaveDialog to the form.
- Add a TImage. Set the Bitmap property of the TImage to an image that is suggestive for the recording process. The usual icon used for a recording process is a red circle.
- 1. Include the FMX.Media unit in the
// Delphi version of the implementation uses FMX.Media;
- 2. Declare a TAudioCaptureDevice public member, named Mic, to the TForm1 class:
type TForm1 = class(TForm) // ............... public Mic: TAudioCaptureDevice;
- 3. Set the Opacity property of the image to
0. The image is visible only when the recording process starts.
- 4. Double-click the Record button to attach OnClick event handlers to it:
procedure TForm1.RecordButtonClick(Sender: TObject); begin ///Get the default microphone Mic := TCaptureDeviceManager.Current.DefaultAudioCaptureDevice; if Mic <> nil then begin //Set the SaveDialog filter to choose only the supported extension SaveDialog1.Filter := Mic.FilterString; if SaveDialog1.Execute then begin RecordButton.Enabled := false; StopButton.Enabled := true; //Gets the name of the file where to save the recorded data Mic.FileName := SaveDialog1.FileName; Mic.StartCapture; Image1.Opacity:=1; end; end else begin ShowMessage('Audio capturing device not available'); end; end;
- 5. Double-click the Stop button to attach OnClick event handlers to the Stop button:
procedure TForm1.StopButtonClick(Sender: TObject); begin if (Mic <> nil) and (Mic.State = TCaptureDeviceState.Capturing) then begin Mic.StopCapture; Image1.Opacity := 0; StopButton.Enabled := false; RecordButton.Enabled := true; end; end;
Run the Application
- 1. To run the project, press F9.
- 2. To start recording audio data, press the Record button. The SaveDialog opens.
- 3. Choose a path and a file name to save the recorded data.
- 4. To stop recording, press the Stop button. If the recording is not ended by calling the StopCapture method, the saved file is not properly decoded when it is played by a media player.