权限配置暂时到此,后台播放问题并入生命周期管理同步开发

This commit is contained in:
2026-08-20 22:07:59 +08:00
parent b2c7582ca7
commit f94cda4234
9 changed files with 787 additions and 364 deletions
@@ -3,46 +3,20 @@ 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
import com.ryanheise.audioservice.AudioServiceActivity // ⭐ 改用这个
class MainActivity : FlutterActivity() {
private val CHANNEL = "com.qt_player/frame_rate"
class MainActivity : AudioServiceActivity() { // ⭐ 继承 AudioServiceActivity
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) {
@@ -60,7 +34,7 @@ class MainActivity : FlutterActivity() {
try {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) {
val params = window.attributes
params.preferredRefreshRate = 0f // 0 表示系统自动
params.preferredRefreshRate = 0f
window.attributes = params
Log.d("QTPlayer", "恢复默认刷新率")
}