feat:v1版本完成

This commit is contained in:
liyi 2025-04-30 16:31:25 +08:00
parent 023fe0a0f3
commit 491e2be4a6
2 changed files with 5 additions and 3 deletions

View File

@ -162,6 +162,7 @@ class VideoDecoder(
// 启动渲染线程
renderThreadRunning = true
renderThread = Thread {
var hasNotifiedFlutter = false
var renderedFrameCount = 0 // 渲染帧计数器
while (renderThreadRunning) {
// 计算每帧渲染间隔
@ -172,10 +173,10 @@ class VideoDecoder(
val frame = outputFrameQueue.take()
frame.codec.releaseOutputBuffer(frame.bufferIndex, true)
renderedFrameCount++
// 每累计renderFps帧回调一次onFrameRendered
if (renderedFrameCount >= renderFps) {
// 回调到Flutter端 通知解码并渲染完81帧了
// 只在首次渲染时回调Flutter
if (!hasNotifiedFlutter) {
mainHandler.post { onFrameRendered() }
hasNotifiedFlutter = true
}
} catch (e: Exception) {
Log.e(TAG, "[RenderThread] Exception", e)

View File

@ -129,6 +129,7 @@ class VideoDecodePlugin {
required int timestamp,
required int frameSeq,
bool splitNalFromIFrame = false,
int? refIFrameSeq, // P帧时可选
}) async {
if (splitNalFromIFrame && frameType == 0) {
// 使SPS/PPS