Giter Club home page Giter Club logo

deepar-flutter-plugin's Introduction

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 21+ 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: Please download the native android dependencies from our downloads section and save it at two locations:

  1. In your flutter project as android/app/libs/deepar.aar.
  2. In the root of your flutter environment directory, navigate to deepar_flutter pub-cache folder and create a new libs folder and place the deepar.aar file as following:
  • ~/.pub-cache/hosted/pub.dartlang.org/deepar_flutter-<plugin-version>/android/libs/deepar.aar (Linux/ Mac)
  • %LOCALAPPDATA%\Pub\Cache\hosted\pub.dartlang.org\deepar_flutter-<plugin-version>\android\libs\deepar.aar(Windows)
  • compileSdkVersion should be 33 or more.
  • minSdkVersion should be 21 or more.

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"  />

iOS:

  1. Ensure your app iOS deployment version is 13.0+.
  2. Download the DeepAR iOS binaries from here.
  3. Copy the DeepAR.xcframework file from /lib folder of the downloaded file and paste as /ios/DeepAR.xcframework in the plugin's directory. Please use the pub-cache folder reference as mentioned in android section.
  4. Do a flutter clean & install pods again.
  5. 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>
  1. 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:

  1. 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);
  1. 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")
		);
}
  1. Load effect of your choice by passing the asset file to it in switchPreview
_controller.switchEffect(effect);
  1. To take a picture, use takeScreenshot() which return the picture as file.
final File file = await _controller.takeScreenshot();
  1. To record a video, please use :
if (_controller.isRecording) {
_controller.stopVideoRecording();
} else {
final File videoFile = _controller.startVideoRecording();
}

For more info, please visit: Developer Help.

deepar-flutter-plugin's People

Contributors

wilson-christian avatar samyakkkk avatar mohamedsalah414 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.