目前调通了120全局,准备开始介入播放层,在修bug

This commit is contained in:
2026-08-15 23:06:55 +08:00
parent 15683d0bab
commit 902788c736
11 changed files with 1096 additions and 235 deletions
@@ -1,5 +1,71 @@
package com.example.qt_player
import android.os.Build
import android.os.Bundle
import android.util.Log
import android.view.WindowManager
import io.flutter.embedding.android.FlutterActivity
import io.flutter.embedding.engine.FlutterEngine
import io.flutter.plugin.common.MethodChannel
class MainActivity : FlutterActivity()
class MainActivity : FlutterActivity() {
private val CHANNEL = "com.qt_player/frame_rate"
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
// 在创建时尝试设置(但可能窗口还未就绪,所以下面在 onResume 再次设置)
setHighRefreshRate()
}
override fun onResume() {
super.onResume()
// 每次回到前台时确保高刷生效
setHighRefreshRate()
}
override fun configureFlutterEngine(flutterEngine: FlutterEngine) {
super.configureFlutterEngine(flutterEngine)
MethodChannel(flutterEngine.dartExecutor.binaryMessenger, CHANNEL)
.setMethodCallHandler { call, result ->
when (call.method) {
"setHighRefreshRate" -> {
setHighRefreshRate()
result.success(true)
}
"clearRefreshRate" -> {
clearRefreshRate()
result.success(true)
}
else -> result.notImplemented()
}
}
}
private fun setHighRefreshRate() {
try {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) {
val params = window.attributes
params.preferredRefreshRate = 120f
window.attributes = params
Log.d("QTPlayer", "✅ 设置高刷 120Hz")
}
} catch (e: Exception) {
Log.e("QTPlayer", "设置高刷失败: ${e.message}")
}
}
private fun clearRefreshRate() {
try {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) {
val params = window.attributes
params.preferredRefreshRate = 0f // 0 表示系统自动
window.attributes = params
Log.d("QTPlayer", "恢复默认刷新率")
}
} catch (e: Exception) {
Log.e("QTPlayer", "恢复默认刷新率失败: ${e.message}")
}
}
}