如何解决如何使用 mediaMuxer 在后台线程中记录视图
我正在使用 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()
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。