MLKit姿态检测

  • 本文关键字:MLKit google-mlkit
  • 更新时间 :
  • 英文 :


从github克隆了一个应用程序,该应用程序应该使用MLKIT拍摄视频并估计一个人的姿势。事情是应用程序,我认为填补了内存缓冲区和崩溃本身,我不知道如何得到一个结果,如果有人能给我一些提示如何避免这种崩溃Kotlin和谢谢你。

Log.d("LOG:", "Here")
val bm = mTextureView.bitmap
if (bm != null) {
Log.d("LOG:", "not null")
bm.compress(Bitmap.CompressFormat.JPEG, 50,out)
val inputImage = InputImage.fromBitmap(
BitmapFactory.decodeStream( ByteArrayInputStream(out.toByteArray())), 0)
poseDetector.process(inputImage)
.addOnSuccessListener { pose ->
if (parentLayout.childCount > 4) parentLayout.removeViewAt(4)
imgView.setImageBitmap(bm)
if (pose.allPoseLandmarks.isNotEmpty()) {
val draw = Draw(applicationContext, pose)
parentLayout.addView(draw)
var content : String = ""
pose.allPoseLandmarks.forEach {
content = content + (it.position3D.x) + (",") + (it.position3D.y) + (",") + (it.position3D.z) + (",") + (it.inFrameLikelihood) + (",")
}
println(content)
content += "n"
fileOut.appendText(content)
Log.d("LOG:", "Success")
}
}
.addOnFailureListener { Log.d("LOG:", "Failure") }
} else Log.d("LOG:", "null")

应用程序可能会崩溃,因为变量mTextureView是零。在其上调用bitmap属性,但未初始化。

mTextureView在代码中使用之前未初始化,或者未正确传递给此函数。你应该检查是否mTextureView是否初始化,如果没有,在代码中使用它之前应该初始化它。

另一个可能的原因是变量'out'没有初始化,这可能会导致崩溃。

ByteArrayInputStream也有可能存在问题或BitmapFactory.decodeStream调用,如果输入数据无效或格式意外,则可能导致崩溃。

当应用程序崩溃时,检查logcat的确切错误信息将会很有帮助。它将提供更多关于坠机原因的信息。

最好检查变量的初始化,并确保在代码中使用它们之前它们不是空的。

最新更新