我想在Android上写一个颤振视频插件。我想把它写在kotlin native by texture上

我想在Android上写一个颤振视频插件。我想把它写在kotlin native by texture上,android,flutter,flutter-plugin,Android,Flutter,Flutter Plugin,我想在Android上写一个颤振视频插件。我想把它写在kotlin native by texture上 基于flatter的纹理小部件渲染 但是我有一些问题 他抛出了一些信息 call to OpenGL ES API with no current context (logged once per thread) 我打电话 val texId=IntArray(1); GLES20.glGenTextures(texId.size,texId,0) 他返回的texId是0

我想在Android上写一个颤振视频插件。我想把它写在kotlin native by texture上

基于flatter的纹理小部件渲染

但是我有一些问题

他抛出了一些信息


call to OpenGL ES API with no current context (logged once per thread)

我打电话


val texId=IntArray(1);

GLES20.glGenTextures(texId.size,texId,0)

他返回的texId是0

  override fun onMethodCall(@NonNull call: MethodCall, @NonNull result: Result) {
    print("call ${call.method}")
    when(call.method){
      "getPlatformVersion"->{
        result.success("Android ${android.os.Build.VERSION.RELEASE}")
      }
      "playVideo"->{
        val texId=IntArray(1);
        GLES20.glGenTextures(texId.size,texId,0)
        Log.d("autopcDev", "Tex Id : ${texId[0].toString()}")
        val mp=MediaPlay( uri= Uri.fromFile(File((call.arguments as Map<*, *>)["path"] as String)),context = activity)
        result.success(mp.tex[0])
      }
    }
  }
重写方法调用(@NonNull调用:方法调用,@NonNull结果:结果){
打印(“call${call.method}”)
when(call.method){
“getPlatformVersion”->{
success(“Android${Android.os.Build.VERSION.RELEASE}”)
}
“播放视频”->{
val texId=阵列(1);
GLES20.glGenTextures(texId.size,texId,0)
Log.d(“autopcDev”,“Tex Id:${texId[0].toString()}”)
val mp=MediaPlay(uri=uri.fromFile(File((call.arguments as Map)[“path”]as String)),context=activity)
result.success(mp.tex[0])
}
}
}

glSurfaceView不在OpenGL线程上运行。glSurfaceView应该位于android主线程上。

GLES20方法的构造函数可能导致问题。尝试在调用“
setRenderer(render);
”之后或在“
onSurfaceCreated
”方法中实例化它