mirror of
https://github.com/bggRGjQaUbCoE/PiliPlus.git
synced 2026-04-20 03:06:59 +08:00
refa player (#1848)
* tweak
* Reapply "opt: audio uri" (#1833)
This reverts commit 8e726f49b2.
* opt: player
* opt: player
* refa: create player
* refa: player
* opt: UaType
* fix: sb seek preview
* opt: setSub
* fix: screenshot
* opt: unnecessary final player state
* opt: player track
* opt FileSource constructor [skip ci]
* fixes
* fix: dispose player
* fix: quote
* update
* fix: multi ua & remove unused loop
* remove unneeded check [skip ci]
---------
Co-authored-by: dom <githubaccount56556@proton.me>
This commit is contained in:
committed by
GitHub
parent
6782bee11a
commit
7276cde48a
@@ -94,6 +94,7 @@ abstract final class ApiType {
|
||||
Api.pgcUrl,
|
||||
Api.pugvUrl,
|
||||
Api.tvPlayUrl,
|
||||
Api.videoshot,
|
||||
},
|
||||
};
|
||||
|
||||
|
||||
70
lib/utils/asset_utils.dart
Normal file
70
lib/utils/asset_utils.dart
Normal file
@@ -0,0 +1,70 @@
|
||||
import 'dart:async';
|
||||
import 'dart:io';
|
||||
|
||||
import 'package:flutter/services.dart';
|
||||
import 'package:path/path.dart' as path;
|
||||
|
||||
abstract final class AssetUtils {
|
||||
/// from media-kit AssetLoader
|
||||
static String? tryGetPath(String key) {
|
||||
if (Platform.isWindows || Platform.isLinux) {
|
||||
return path.join(
|
||||
path.dirname(Platform.resolvedExecutable),
|
||||
'data',
|
||||
'flutter_assets',
|
||||
key,
|
||||
);
|
||||
} else if (Platform.isMacOS) {
|
||||
return path.join(
|
||||
path.dirname(Platform.resolvedExecutable),
|
||||
'..',
|
||||
'Frameworks',
|
||||
'App.framework',
|
||||
'Resources',
|
||||
'flutter_assets',
|
||||
key,
|
||||
);
|
||||
} else if (Platform.isIOS) {
|
||||
return path.join(
|
||||
path.dirname(Platform.resolvedExecutable),
|
||||
'Frameworks',
|
||||
'App.framework',
|
||||
'flutter_assets',
|
||||
key,
|
||||
);
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
static FutureOr<String> getOrCopy(
|
||||
String src,
|
||||
Iterable<String> files,
|
||||
String dst,
|
||||
) async {
|
||||
final parsedSrc = tryGetPath(src);
|
||||
if (parsedSrc != null) {
|
||||
final srcDir = Directory(parsedSrc);
|
||||
if (srcDir.existsSync()) {
|
||||
return srcDir.absolute.path;
|
||||
}
|
||||
}
|
||||
|
||||
final dstDir = Directory(dst);
|
||||
if (!dstDir.existsSync()) {
|
||||
await dstDir.create(recursive: true);
|
||||
}
|
||||
|
||||
for (final file in files) {
|
||||
final targetFile = File(path.join(dst, file));
|
||||
if (targetFile.existsSync()) {
|
||||
continue;
|
||||
}
|
||||
|
||||
try {
|
||||
final data = await rootBundle.load(file);
|
||||
await targetFile.writeAsBytes(data.buffer.asUint8List());
|
||||
} catch (_) {}
|
||||
}
|
||||
return dst;
|
||||
}
|
||||
}
|
||||
@@ -3,8 +3,8 @@ import 'dart:io' show Platform;
|
||||
import 'package:PiliPlus/build_config.dart';
|
||||
import 'package:PiliPlus/common/constants.dart';
|
||||
import 'package:PiliPlus/http/api.dart';
|
||||
import 'package:PiliPlus/http/browser_ua.dart';
|
||||
import 'package:PiliPlus/http/init.dart';
|
||||
import 'package:PiliPlus/http/ua_type.dart';
|
||||
import 'package:PiliPlus/utils/accounts/account.dart';
|
||||
import 'package:PiliPlus/utils/page_utils.dart';
|
||||
import 'package:PiliPlus/utils/storage.dart';
|
||||
@@ -24,7 +24,7 @@ abstract final class Update {
|
||||
final res = await Request().get(
|
||||
Api.latestApp,
|
||||
options: Options(
|
||||
headers: {'user-agent': UaType.mob.ua},
|
||||
headers: {'user-agent': BrowserUa.mob},
|
||||
extra: {'account': const NoAccount()},
|
||||
),
|
||||
);
|
||||
|
||||
Reference in New Issue
Block a user