Xojo Conferences
XDCMay2019MiamiUSA

Platforms to show: All Mac Windows Linux Cross-Platform

AVAudioRecorderMBS class

Type Topic Plugin Version macOS Windows Linux Console & Web iOS
class AVFoundation MBS AVFoundation Plugin 13.2 Yes No No Yes, macOS only No
Function: An instance of the AVAudioRecorder class, called an audio recorder, provides audio recording capability in your application.
Example:
dim f as FolderItem = SpecialFolder.Desktop.Child("test.caf")
dim recordSetting as new Dictionary

dim n as Integer = OSTypeFromStringMBS(AVFoundationMBS.kAudioFormatLinearPCM)
recordSetting.Value(AVFoundationMBS.AVFormatIDKey) = n
recordSetting.Value(AVFoundationMBS.AVSampleRateKey) = 44100.0
recordSetting.Value(AVFoundationMBS.AVNumberOfChannelsKey) = 2
recordSetting.Value(AVFoundationMBS.AVLinearPCMBitDepthKey) = 16
recordSetting.Value(AVFoundationMBS.AVLinearPCMIsBigEndianKey) = false
recordSetting.Value(AVFoundationMBS.AVLinearPCMIsFloatKey) = false


dim error as NSErrorMBS
dim recorder as new AVAudioRecorderMBS(f, recordSetting, error)

if error<>Nil then
MsgBox error.LocalizedDescription
Return
end if

if recorder.recordForDuration(10) then
// ok
else
MsgBox "Failed to start recording."
end if
Notes:
Using an audio recorder you can:

  • Record until the user stops the recording
  • Record for a specified duration
  • Pause and resume a recording
  • Obtain input audio-level data that you can use to provide level metering

In OS X, the audio comes from the system's default audio input device as set by a user in System Preferences.

You can implement a subclass of AVFoundationMBS to respond to audio interruptions and audio decoding errors, and to the completion of a recording.

To configure a recording, including options such as bit depth, bit rate, and sample rate conversion quality, configure the audio recorder's settings dictionary. Use the settings keys described in AV Foundation Audio Settings Constants.

To configure an appropriate audio session for recording, refer to AVAudioSession Class Reference and AVAudioSessionDelegate Protocol Reference.

The AVAudioRecorder class is intended to allow you to make audio recordings with very little programming overhead. Other classes that can be used for recording audio in OS X include AVCaptureAudioDataOutput and the Audio Queue services described in the Audio Queue Services Programming Guide.

In OS X, you can also use the AVCaptureAudioFileOutput class to record audio.
Available in OS X v10.7 and later.

Calls audioRecorderEncodeErrorDidOccur and audioRecorderDidFinishRecording events on AVFoundationMBS class.

Feedback, Comments & Corrections

This class has no sub classes.

Some events for this class:

Some examples which use this class:


The items on this page are in the following plugins: MBS AVFoundation Plugin.


AVAudioPlayerNodeMBS   -   AVAudioTimeMBS




Links
MBS Xojo tutorial videos