AVRecorder.Init
---------------

Starts a new recording session.

| Component | Version | macOS | Windows | Linux | Server | iOS SDK |
|---|---|---|---|---|---|---|
| [AVRecorder](component_AVRecorder.md) | [6.1](newinversion61.md) | ✅ Yes | ✅ Yes | ❌ No | ❌ No | ✅ Yes |

MBS( "AVRecorder.Init" ) ### Parameters

none

### Result

Returns OK or error.

### Description

Starts a new recording session.  
You need to call init to get a new session ID which is needed for all other AVRecorder calls.  
Please call [AVRecorder.Release](AVRecorderRelease.md) when you are done with recording.  
### Examples

Initialize and pick first camera:

 Set Variable \[ $$SessionID ; Value: MBS ("AVRecorder.Init") \]   
If \[ MBS ("IsError") \]   
 Show Custom Dialog \[ "Sorry" ; $$SessionID \]   
 Exit Script \[ Text Result: \]   
End If  
  
If \[ MBS ("[AVRecorder.VideoDeviceCount](AVRecorderVideoDeviceCount.md)"; $$SessionID ) = 0 \]   
 Show Custom Dialog \[ "Please buy a camera" \]   
 Exit Script \[ Text Result: \]   
End If  
  
\# pick first camera   
Set Variable \[ $r ; Value: MBS ("[AVRecorder.SetVideoDevice](AVRecorderSetVideoDevice.md)"; $$SessionID ; 0) \]  
Enumerate audio and video devices:

 # init   
Set Variable \[$recorder ; Value:MBS ("AVRecorder.Init")\]  
Delete All Records \[No dialog\]  
\# audio   
Set Variable \[$count ; Value:MBS ("[AVRecorder.AudioDeviceCount](AVRecorderAudioDeviceCount.md)"; $recorder )\]  
If \[$count &gt; 0\]  
 Set Variable \[$index ; Value:0\]  
 Loop  
 # next  
 New Record/Request  
 Set Field \[AVRecorder Devices::Index ; $index \]  
 Set Field \[AVRecorder Devices::ID ; MBS ("[AVRecorder.AudioDeviceInfo](AVRecorderAudioDeviceInfo.md)"; $recorder ; $index ; "ID")\]  
 Set Field \[AVRecorder Devices::Name ; MBS ("[AVRecorder.AudioDeviceInfo](AVRecorderAudioDeviceInfo.md)"; $recorder ; $index ; "Name")\]  
 Set Field \[AVRecorder Devices::Description ; MBS ("[AVRecorder.AudioDeviceInfo](AVRecorderAudioDeviceInfo.md)"; $recorder ; $index ; "Description")\]  
 If \[MBS ("[SystemInfo.isMacOSX](SystemInfoisMacOSX.md)")\]  
 Set Field \[AVRecorder Devices::Manufacturer ; MBS ("[AVRecorder.AudioDeviceInfo](AVRecorderAudioDeviceInfo.md)"; $recorder ; $index ; "manufacturer")\]  
 Set Field \[AVRecorder Devices::ModelID ; MBS ("[AVRecorder.AudioDeviceInfo](AVRecorderAudioDeviceInfo.md)"; $recorder ; $index ; "modelID")\]  
 Set Field \[AVRecorder Devices::TransportType ; MBS ("[AVRecorder.AudioDeviceInfo](AVRecorderAudioDeviceInfo.md)"; $recorder ; $index ; "transportType")\]  
 Set Field \[AVRecorder Devices::Connected ; MBS ("[AVRecorder.AudioDeviceInfo](AVRecorderAudioDeviceInfo.md)"; $recorder ; $index ; "connected")\]  
 Set Field \[AVRecorder Devices::inUseByAnotherApplication ; MBS ("[AVRecorder.AudioDeviceInfo](AVRecorderAudioDeviceInfo.md)"; $recorder ; $index ; "inUseByAnotherApplication")\]  
 Set Field \[AVRecorder Devices::suspended ; MBS ("[AVRecorder.AudioDeviceInfo](AVRecorderAudioDeviceInfo.md)"; $recorder ; $index ; "suspended")\]  
 End If  
 Set Field \[AVRecorder Devices::Type ; "Audio"\]  
 Commit Records/Requests \[\]  
 Set Variable \[$index ; Value:$index + 1\]  
 Exit Loop If \[$count = $index \]  
 End Loop  
End If  
\# video   
Set Variable \[$count ; Value:MBS ("[AVRecorder.VideoDeviceCount](AVRecorderVideoDeviceCount.md)"; $recorder )\]  
If \[$count &gt; 0\]  
 Set Variable \[$index ; Value:0\]  
 Loop  
 # next  
 New Record/Request  
 Set Field \[AVRecorder Devices::Index ; $index \]  
 Set Field \[AVRecorder Devices::ID ; MBS ("[AVRecorder.VideoDeviceInfo](AVRecorderVideoDeviceInfo.md)"; $recorder ; $index ; "ID")\]  
 Set Field \[AVRecorder Devices::Name ; MBS ("[AVRecorder.VideoDeviceInfo](AVRecorderVideoDeviceInfo.md)"; $recorder ; $index ; "Name")\]  
 Set Field \[AVRecorder Devices::Description ; MBS ("[AVRecorder.VideoDeviceInfo](AVRecorderVideoDeviceInfo.md)"; $recorder ; $index ; "Description")\]  
 If \[MBS ("[SystemInfo.isMacOSX](SystemInfoisMacOSX.md)")\]  
 Set Field \[AVRecorder Devices::Manufacturer ; MBS ("[AVRecorder.VideoDeviceInfo](AVRecorderVideoDeviceInfo.md)"; $recorder ; $index ; "manufacturer")\]  
 Set Field \[AVRecorder Devices::ModelID ; MBS ("[AVRecorder.VideoDeviceInfo](AVRecorderVideoDeviceInfo.md)"; $recorder ; $index ; "modelID")\]  
 Set Field \[AVRecorder Devices::TransportType ; MBS ("[AVRecorder.VideoDeviceInfo](AVRecorderVideoDeviceInfo.md)"; $recorder ; $index ; "transportType")\]  
 Set Field \[AVRecorder Devices::Connected ; MBS ("[AVRecorder.VideoDeviceInfo](AVRecorderVideoDeviceInfo.md)"; $recorder ; $index ; "connected")\]  
 Set Field \[AVRecorder Devices::inUseByAnotherApplication ; MBS ("[AVRecorder.VideoDeviceInfo](AVRecorderVideoDeviceInfo.md)"; $recorder ; $index ; "inUseByAnotherApplication")\]  
 Set Field \[AVRecorder Devices::suspended ; MBS ("[AVRecorder.VideoDeviceInfo](AVRecorderVideoDeviceInfo.md)"; $recorder ; $index ; "suspended")\]  
 End If  
 Set Field \[AVRecorder Devices::Type ; "Video"\]  
 Commit Records/Requests \[\]  
 Set Variable \[$index ; Value:$index + 1\]  
 Exit Loop If \[$count = $index \]  
 End Loop  
End If  
\# cleanup   
Set Variable \[$r ; Value:MBS ("[AVRecorder.Release](AVRecorderRelease.md)"; $recorder )\]  
### See also

- [AVRecorder.List](AVRecorderList.md)
- [AVRecorder.SetVideoDevice](AVRecorderSetVideoDevice.md)
- [AVRecorder.SetVideoOrientation](AVRecorderSetVideoOrientation.md)
- [AVRecorder.ShowPropertyDialog](AVRecorderShowPropertyDialog.md)
- [AVRecorder.StopQRCodeDetection](AVRecorderStopQRCodeDetection.md)
- [AVRecorder.StopRecording](AVRecorderStopRecording.md)
- [AVRecorder.VideoDeviceInfo](AVRecorderVideoDeviceInfo.md)
- [AVRecorder.VideoResolutions](AVRecorderVideoResolutions.md)
- [IsError](IsError.md)
- [SystemInfo.isMacOSX](SystemInfoisMacOSX.md)

### Release notes

- **Version 7.2**
    - Fixed a bug in [AVRecorder.Init](http://www.mbsplugins.eu/AVRecorderInit.shtml) to work better if no video device is found.

### Example Databases

- [AVRecorder/AV Recorder Record Dictation](https://www.mbsplugins.eu/MBS-FileMaker-Plugin-Examples/AVRecorder/AV%20Recorder%20Record%20Dictation.shtml#1ScriptAnchor_)
- [AVRecorder/AVRecorder Devices](https://www.mbsplugins.eu/MBS-FileMaker-Plugin-Examples/AVRecorder/AVRecorder%20Devices.shtml#1ScriptAnchor_)
- [AVRecorder/AVRecorder iOS Test](https://www.mbsplugins.eu/MBS-FileMaker-Plugin-Examples/AVRecorder/AVRecorder%20iOS%20Test.shtml#1ScriptAnchor_)
- [AVRecorder/AVRecorder](https://www.mbsplugins.eu/MBS-FileMaker-Plugin-Examples/AVRecorder/AVRecorder.shtml#1ScriptAnchor_)

### Blog Entries

- [MBS FileMaker Advent calendar - Door 22 - Taking Photos](https://www.mbsplugins.de/archive/2024-12-22/MBS_FileMaker_Advent_calendar_/monkeybreadsoftware_blog_filemaker)
- [MBS FileMaker Plugin, version 7.2pr3](https://www.mbsplugins.de/archive/2017-04-19/MBS_FileMaker_Plugin_version_7/monkeybreadsoftware_blog_filemaker)
- [Audio and Video Recording for FileMaker](https://www.mbsplugins.de/archive/2016-02-21/Audio_and_Video_Recording_for_/monkeybreadsoftware_blog_filemaker)

This function checks for a license.

Created 9th February 2016 , last changed 24th February 2022

  
[AVRecorder.HasQRCode](AVRecorderHasQRCode.md) - [AVRecorder.IsRecording](AVRecorderIsRecording.md)

[HTML Version](AVRecorderInit.shtml)