Show: Delphi
C++
Display Preferences
Audio Recording
From RAD Studio XE3
Go Up to Tutorial: FireMonkey Audio-Video
This tutorial demonstrates how to use FireMonkey to capture audio media data.
Contents |
Form Design
- Select File > New > FireMonkey Desktop Application - Delphi > 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.
Implementation
- 1. Include the FMX.Media unit in the
usessection:
// 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 divice 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.
