我正在使用MediaMuxer将视图录制为MP4视频文件。我成功地实现了这一点
https://github.com/rogererill/LottieRecorderTest
但在那之后,当我实现UI/UX时,我将进度加载视图设置为动画。但它一直被卡住,直到这个视频编码器处理完成。
我也尝试了thread(),但应用程序崩溃了,没有任何错误。你们能帮我吗?
下面是我在应用程序中出错的代码片段:
fun start() {
object : Thread() {
override fun run() {
super.run()
while (isRecording()) {
recorder.nextFrame(frameCreator.generateFrame())
}
recorder.end()
listener()
}
}.start()
}
fun nextFrame(currentFrame: Drawable) {
drainEncoder(false)
val canvas = inputSurface.lockCanvas(null)
try {
canvas.drawColor(Color.TRANSPARENT, PorterDuff.Mode.CLEAR) // Here you need to set some kind of background. Could be any color
currentFrame.draw(canvas)
} finally {
inputSurface.unlockCanvasAndPost(canvas)
}
}
fun end() {
drainEncoder(true)
close()
}