deepar_flutter 0.0.4 deepar_flutter: ^0.0.4 copied to clipboard
Official Flutter SDK for DeepAR
This plugin is the official SDK for DeepAR. Platforms supported: Android & iOS.
The current version of plugin supports:
- Live AR previews ✅
- Take screenshots ✅
- Record Videos ✅
- Flip camera ✅
- Toggle Flash ✅
Support | Android | iOS |
---|---|---|
SDK 23+ | iOS 13.0+ |
Installation #
Please visit our developer website to create a project and generate your separate license keys for both platforms.
Once done, please add the latest deepar_flutter
dependency to your pubspec.yaml.
Android:
- compileSdkVersion should be 33 or more.
- minSdkVersion should be 23 or more.
- Download the native android dependencies from our downloads section and paste it in your flutter project at
android/app/libs/deepar.aar
.
Also add the following permission requests in your AndroidManifest.xml
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.RECORD_AUDIO"/>
<uses-permission android:name="Manifest.permission.CAPTURE_AUDIO_OUTPUT" />
<uses-permission android:name="android.permission.CAMERA" />
Ensure to add these rules to proguard-rules.pro
else app might crash in release build
-keepclassmembers class ai.deepar.ar.DeepAR { *; }
-keepclassmembers class ai.deepar.ar.core.videotexture.VideoTextureAndroidJava { *; }
-keep class ai.deepar.ar.core.videotexture.VideoTextureAndroidJava
iOS:
- Ensure your app iOS deployment version is 13.0+.
- Do a flutter clean & install pods.
- To handle camera and microphone permissions, please add the following strings to your info.plist.
<key>NSCameraUsageDescription</key>
<string>---Reason----</string>
<key>NSMicrophoneUsageDescription</key>
<string>---Reason----</string>
- Also add the following to your
Podfile
file:
post_install do |installer|
installer.pods_project.targets.each do |target|
... # Here are some configurations automatically generated by flutter
# Start of the deepar configuration
target.build_configurations.each do |config|
config.build_settings['GCC_PREPROCESSOR_DEFINITIONS'] ||= [
'$(inherited)',
## dart: PermissionGroup.camera
'PERMISSION_CAMERA=1',
## dart: PermissionGroup.microphone
'PERMISSION_MICROPHONE=1',
]
end
# End of the permission_handler configuration
end
end
Flutter:
- Initialize
DeepArController
by passing in your license keys for both platforms.
final DeepArController _controller = DeepArController();
_controller.initialize(
androidLicenseKey:"---android key---",
iosLicenseKey:"---iOS key---",
resolution: Resolution.high);
- Place the DeepArPreview widget in your widget tree to display the preview.
@override
Widget build(BuildContext context) {
return _controller.isInitialized
? DeepArPreview(_controller)
: const Center(
child: Text("Loading Preview")
);
}
To display the preview in full screen, wrap DeepArPreview
with Transform.scale()
.
- Load effect of your choice by passing the asset file to it in
switchPreview
_controller.switchEffect(effect);
- To take a picture, use
takeScreenshot()
which return the picture as file.
final File file = await _controller.takeScreenshot();
- To record a video, please use :
if (_controller.isRecording) {
_controller.stopVideoRecording();
} else {
final File videoFile = _controller.startVideoRecording();
}
For more info, please visit: Developer Help.