目前调通了120全局,准备开始介入播放层,在修bug
This commit is contained in:
@@ -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}")
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user