还在尝试跑通播放状态

This commit is contained in:
2026-08-17 23:00:30 +08:00
parent a6056c7f1a
commit 725116760a
7 changed files with 480 additions and 114 deletions
+34
View File
@@ -26,10 +26,22 @@ class WebDAVService {
Future<void> saveCredentials(
String baseUrl, String username, String password) async {
final prefs = await SharedPreferences.getInstance();
print('💾 [saveCredentials] 开始保存凭据...');
print('💾 [saveCredentials] baseUrl: $baseUrl');
print('💾 [saveCredentials] username: $username');
print('💾 [saveCredentials] password 长度: ${password.length}');
await prefs.setString(_keyBaseUrl, baseUrl);
await prefs.setString(_keyUsername, username);
await prefs.setString(_keyPassword, password);
// 立即读取验证
final verifyUsername = prefs.getString(_keyUsername);
final verifyPassword = prefs.getString(_keyPassword);
print(
'💾 [saveCredentials] 验证读取 - username: $verifyUsername, password 存在: ${verifyPassword != null}');
_baseUrl = baseUrl;
_username = username;
_dio = Dio(BaseOptions(
@@ -74,6 +86,28 @@ class WebDAVService {
_username = null;
}
// ✅ 新增:获取认证头(用于 media_kit 播放)
Future<Map<String, String>> getAuthHeaders() async {
final prefs = await SharedPreferences.getInstance();
final username = prefs.getString(_keyUsername);
final password = prefs.getString(_keyPassword);
print('🔑 [getAuthHeaders] 读取到用户名: $username');
print('🔑 [getAuthHeaders] 密码存在: ${password != null}');
print('🔑 [getAuthHeaders] 密码长度: ${password?.length ?? 0}');
if (username != null && password != null) {
final credentials = '$username:$password';
final encoded = base64Encode(utf8.encode(credentials));
print('🔑 [getAuthHeaders] 生成的 Authorization 头: Basic $encoded');
return {
'Authorization': 'Basic $encoded',
};
}
print('⚠️ [getAuthHeaders] 用户名或密码为 null,返回空 Map');
return {};
}
// 获取音乐文件列表(PROPFIND
Future<List<WebDAVItem>> listDirectory({String path = '/'}) async {
if (_dio == null) throw Exception('WebDAV 未连接');