| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667 |
- package com.june.fffmpeg;
- import androidx.annotation.NonNull;
- import java.util.ArrayList;
- import java.util.List;
- import io.flutter.embedding.engine.plugins.FlutterPlugin;
- import io.flutter.plugin.common.MethodCall;
- import io.flutter.plugin.common.MethodChannel;
- import io.flutter.plugin.common.MethodChannel.MethodCallHandler;
- import io.flutter.plugin.common.MethodChannel.Result;
- import io.flutter.plugin.common.PluginRegistry.Registrar;
- /** FffmpegPlugin */
- public class FffmpegPlugin implements FlutterPlugin, MethodCallHandler {
- /// The MethodChannel that will the communication between Flutter and native Android
- ///
- /// This local reference serves to register the plugin with the Flutter Engine and unregister it
- /// when the Flutter Engine is detached from the Activity
- private MethodChannel channel;
- FlutterFFmpegResultHandler flutterFFmpegResultHandler;
- public FffmpegPlugin(){
- this.flutterFFmpegResultHandler = new FlutterFFmpegResultHandler();
- }
- @Override
- public void onAttachedToEngine(@NonNull FlutterPluginBinding flutterPluginBinding) {
- channel = new MethodChannel(flutterPluginBinding.getFlutterEngine().getDartExecutor(), "fffmpeg");
- channel.setMethodCallHandler(this);
- }
- // This static function is optional and equivalent to onAttachedToEngine. It supports the old
- // pre-Flutter-1.12 Android projects. You are encouraged to continue supporting
- // plugin registration via this function while apps migrate to use the new Android APIs
- // post-flutter-1.12 via https://flutter.dev/go/android-project-migration.
- //
- // It is encouraged to share logic between onAttachedToEngine and registerWith to keep
- // them functionally equivalent. Only one of onAttachedToEngine or registerWith will be called
- // depending on the user's project. onAttachedToEngine or registerWith must both be defined
- // in the same class.
- public static void registerWith(Registrar registrar) {
- final MethodChannel channel = new MethodChannel(registrar.messenger(), "fffmpeg");
- channel.setMethodCallHandler(new FffmpegPlugin());
- }
- @Override
- public void onMethodCall(@NonNull MethodCall call, @NonNull Result result) {
- if (call.method.equals("getPlatformVersion")) {
- result.success("Android " + android.os.Build.VERSION.RELEASE);
- } else if (call.method.equals("exeCommand")) {
- List<String> arguments = call.argument("arguments");
- final FlutterFFmpegExecuteFFmpegAsyncArgumentsTask asyncTask = new FlutterFFmpegExecuteFFmpegAsyncArgumentsTask(arguments, flutterFFmpegResultHandler, result);
- asyncTask.execute("dummy-trigger");
- }else {
- result.notImplemented();
- }
- }
- @Override
- public void onDetachedFromEngine(@NonNull FlutterPluginBinding binding) {
- channel.setMethodCallHandler(null);
- }
- }
|