Forráskód Böngészése

Merge pull request #92 from CaiJingLong/fix-for-flutter-dev

Update setMethodCallHandler callback.
Caijinglong 6 éve
szülő
commit
f720e559e1
3 módosított fájl, 89 hozzáadás és 92 törlés
  1. 77 80
      android/src/main/java/top/kikt/ijkplayer/Ijk.kt
  2. 6 6
      example/pubspec.lock
  3. 6 6
      pubspec.lock

+ 77 - 80
android/src/main/java/top/kikt/ijkplayer/Ijk.kt

@@ -8,7 +8,6 @@ import android.graphics.Bitmap
 import android.media.AudioManager
 import android.net.Uri
 import android.util.Base64
-import io.flutter.plugin.common.MethodCall
 import io.flutter.plugin.common.MethodChannel
 import io.flutter.plugin.common.PluginRegistry
 import top.kikt.ijkplayer.entity.IjkOption
@@ -18,7 +17,7 @@ import tv.danmaku.ijk.media.player.TextureMediaPlayer
 import java.io.ByteArrayOutputStream
 import java.io.File
 
-class Ijk(private val registry: PluginRegistry.Registrar, val options: Map<String, Any>) : MethodChannel.MethodCallHandler {
+class Ijk(private val registry: PluginRegistry.Registrar, private val options: Map<String, Any>) {
 
     private val textureEntry = registry.textures().createSurfaceTexture()
     val id: Long
@@ -37,7 +36,82 @@ class Ijk(private val registry: PluginRegistry.Registrar, val options: Map<Strin
         textureMediaPlayer = TextureMediaPlayer(mediaPlayer)
         configOptions()
         textureMediaPlayer.surfaceTexture = textureEntry.surfaceTexture()
-        methodChannel.setMethodCallHandler(this)
+        methodChannel.setMethodCallHandler { call, result ->
+            when (call?.method) {
+                "setNetworkDataSource" -> {
+                    val uri = call.argument<String>("uri")
+                    val params = call.argument<Map<String, String>>("headers")
+                    if (uri == null) {
+                        handleSetUriResult(Exception("uri是必传参数"), result)
+                        return@setMethodCallHandler
+                    }
+                    setUri(uri, params) { throwable ->
+                        handleSetUriResult(throwable, result)
+                    }
+                }
+                "setAssetDataSource" -> {
+                    val name = call.argument<String>("name")
+                    val `package` = call.argument<String>("package")
+                    if (name != null) {
+                        setAssetUri(name, `package`) { throwable ->
+                            handleSetUriResult(throwable, result)
+                        }
+                    } else {
+                        handleSetUriResult(Exception("没有找到资源"), result)
+                    }
+                }
+                "setFileDataSource" -> {
+                    val path = call.argument<String>("path")
+                    if (path != null) {
+                        setUri("file://$path", hashMapOf()) { throwable ->
+                            handleSetUriResult(throwable, result)
+                        }
+                    }
+                }
+                "play" -> {
+                    play()
+                    result?.success(true)
+                }
+                "pause" -> {
+                    pause()
+                    result?.success(true)
+                }
+                "stop" -> {
+                    stop()
+                    result?.success(true)
+                }
+                "getInfo" -> {
+                    val info = getInfo()
+                    result?.success(info.toMap())
+                }
+                "seekTo" -> {
+                    val target = call.argument<Double>("target")
+                    if (target != null) {
+                        seekTo((target * 1000).toLong())
+                    }
+                    result?.success(true)
+                }
+                "setVolume" -> {
+                    val volume = call.argument<Int>("volume")
+                    setVolume(volume)
+                    result?.success(true)
+                }
+                "getVolume" -> {
+//                result?.success(this.mediaPlayer.setVolume())
+                }
+                "screenShot" -> {
+                    val bytes = screenShot()
+                    result?.success(bytes)
+                }
+                "setSpeed" -> {
+                    val speed = call.arguments<Double>()
+                    mediaPlayer.setSpeed(speed.toFloat())
+                }
+                else -> {
+                    result?.notImplemented()
+                }
+            }
+        }
     }
 
     private val appContext: Context
@@ -97,83 +171,6 @@ class Ijk(private val registry: PluginRegistry.Registrar, val options: Map<Strin
         }
     }
 
-    override fun onMethodCall(call: MethodCall?, result: MethodChannel.Result?) {
-        when (call?.method) {
-            "setNetworkDataSource" -> {
-                val uri = call.argument<String>("uri")
-                val params = call.argument<Map<String, String>>("headers")
-                if (uri == null) {
-                    handleSetUriResult(Exception("uri是必传参数"), result)
-                    return
-                }
-                setUri(uri, params) { throwable ->
-                    handleSetUriResult(throwable, result)
-                }
-            }
-            "setAssetDataSource" -> {
-                val name = call.argument<String>("name")
-                val `package` = call.argument<String>("package")
-                if (name != null) {
-                    setAssetUri(name, `package`) { throwable ->
-                        handleSetUriResult(throwable, result)
-                    }
-                } else {
-                    handleSetUriResult(Exception("没有找到资源"), result)
-                }
-            }
-            "setFileDataSource" -> {
-                val path = call.argument<String>("path")
-                if (path != null) {
-                    setUri("file://$path", hashMapOf()) { throwable ->
-                        handleSetUriResult(throwable, result)
-                    }
-                }
-            }
-            "play" -> {
-                play()
-                result?.success(true)
-            }
-            "pause" -> {
-                pause()
-                result?.success(true)
-            }
-            "stop" -> {
-                stop()
-                result?.success(true)
-            }
-            "getInfo" -> {
-                val info = getInfo()
-                result?.success(info.toMap())
-            }
-            "seekTo" -> {
-                val target = call.argument<Double>("target")
-                if (target != null) {
-                    seekTo((target * 1000).toLong())
-                }
-                result?.success(true)
-            }
-            "setVolume" -> {
-                val volume = call.argument<Int>("volume")
-                setVolume(volume)
-                result?.success(true)
-            }
-            "getVolume" -> {
-//                result?.success(this.mediaPlayer.setVolume())
-            }
-            "screenShot" -> {
-                val bytes = screenShot()
-                result?.success(bytes)
-            }
-            "setSpeed" -> {
-                val speed = call.arguments<Double>()
-                mediaPlayer.setSpeed(speed.toFloat())
-            }
-            else -> {
-                result?.notImplemented()
-            }
-        }
-    }
-
     private fun screenShot(): ByteArray? {
         val frameBitmap = mediaPlayer.frameBitmap
         return if (frameBitmap != null) {

+ 6 - 6
example/pubspec.lock

@@ -1,5 +1,5 @@
 # Generated by pub
-# See https://www.dartlang.org/tools/pub/glossary#lockfile
+# See https://dart.dev/tools/pub/glossary#lockfile
 packages:
   analyzer:
     dependency: transitive
@@ -21,7 +21,7 @@ packages:
       name: async
       url: "https://pub.flutter-io.cn"
     source: hosted
-    version: "2.1.0"
+    version: "2.2.0"
   boolean_selector:
     dependency: transitive
     description:
@@ -169,7 +169,7 @@ packages:
       name: pedantic
       url: "https://pub.flutter-io.cn"
     source: hosted
-    version: "1.5.0"
+    version: "1.7.0"
   petitparser:
     dependency: transitive
     description:
@@ -204,7 +204,7 @@ packages:
       name: quiver
       url: "https://pub.flutter-io.cn"
     source: hosted
-    version: "2.0.2"
+    version: "2.0.3"
   sky_engine:
     dependency: transitive
     description: flutter
@@ -251,7 +251,7 @@ packages:
       name: test_api
       url: "https://pub.flutter-io.cn"
     source: hosted
-    version: "0.2.4"
+    version: "0.2.5"
   typed_data:
     dependency: transitive
     description:
@@ -281,5 +281,5 @@ packages:
     source: hosted
     version: "2.1.15"
 sdks:
-  dart: ">=2.2.0 <3.0.0"
+  dart: ">=2.2.2 <3.0.0"
   flutter: ">=0.3.0 <2.0.0"

+ 6 - 6
pubspec.lock

@@ -1,5 +1,5 @@
 # Generated by pub
-# See https://www.dartlang.org/tools/pub/glossary#lockfile
+# See https://dart.dev/tools/pub/glossary#lockfile
 packages:
   async:
     dependency: transitive
@@ -7,7 +7,7 @@ packages:
       name: async
       url: "https://pub.flutter-io.cn"
     source: hosted
-    version: "2.1.0"
+    version: "2.2.0"
   boolean_selector:
     dependency: transitive
     description:
@@ -66,14 +66,14 @@ packages:
       name: pedantic
       url: "https://pub.flutter-io.cn"
     source: hosted
-    version: "1.5.0"
+    version: "1.7.0"
   quiver:
     dependency: transitive
     description:
       name: quiver
       url: "https://pub.flutter-io.cn"
     source: hosted
-    version: "2.0.2"
+    version: "2.0.3"
   sky_engine:
     dependency: transitive
     description: flutter
@@ -120,7 +120,7 @@ packages:
       name: test_api
       url: "https://pub.flutter-io.cn"
     source: hosted
-    version: "0.2.4"
+    version: "0.2.5"
   typed_data:
     dependency: transitive
     description:
@@ -136,4 +136,4 @@ packages:
     source: hosted
     version: "2.0.8"
 sdks:
-  dart: ">=2.2.0 <3.0.0"
+  dart: ">=2.2.2 <3.0.0"