我想在Android上写一个颤振视频插件。我想把它写在kotlin native by texture上
我想在Android上写一个颤振视频插件。我想把它写在kotlin native by texture上 基于flatter的纹理小部件渲染 但是我有一些问题 他抛出了一些信息我想在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
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
”方法中实例化它