fix: no audio-tags in Linux and duration not showing up for local tracks

This commit is contained in:
Kingkor Roy Tirtho 2023-08-07 14:43:24 +06:00
parent b31933f31d
commit 79b9c57932
5 changed files with 16 additions and 34 deletions

View File

@ -283,7 +283,7 @@ class TrackOptions extends HookConsumerWidget {
), ),
PopSheetEntry( PopSheetEntry(
value: TrackOptionValue.download, value: TrackOptionValue.download,
enabled: isInQueue, enabled: !isInQueue,
leading: isInQueue leading: isInQueue
? HookBuilder(builder: (context) { ? HookBuilder(builder: (context) {
final progress = useListenable(progressNotifier!); final progress = useListenable(progressNotifier!);

View File

@ -118,7 +118,7 @@ class DownloadManager {
savePath: partialFilePath, savePath: partialFilePath,
onReceiveProgress: createCallback(url, 0), onReceiveProgress: createCallback(url, 0),
cancelToken: cancelToken, cancelToken: cancelToken,
deleteOnError: false, deleteOnError: true,
); );
if (response.statusCode == HttpStatus.ok) { if (response.statusCode == HttpStatus.ok) {

View File

@ -162,15 +162,13 @@ class YoutubeEndpoints {
} }
String _pipedStreamResponseToStreamUrl(PipedStreamResponse stream) { String _pipedStreamResponseToStreamUrl(PipedStreamResponse stream) {
final streamFormat = DesktopTools.platform.isLinux
? PipedAudioStreamFormat.webm
: PipedAudioStreamFormat.m4a;
return switch (preferences.audioQuality) { return switch (preferences.audioQuality) {
AudioQuality.high => AudioQuality.high => stream
stream.highestBitrateAudioStreamOfFormat(streamFormat)!.url, .highestBitrateAudioStreamOfFormat(PipedAudioStreamFormat.m4a)!
AudioQuality.low => .url,
stream.lowestBitrateAudioStreamOfFormat(streamFormat)!.url, AudioQuality.low => stream
.lowestBitrateAudioStreamOfFormat(PipedAudioStreamFormat.m4a)!
.url,
}; };
} }
@ -180,15 +178,7 @@ class YoutubeEndpoints {
() => youtube!.videos.streams.getManifest(id), () => youtube!.videos.streams.getManifest(id),
); );
final audioOnlyManifests = res.audioOnly.where((info) { final audioOnlyManifests = res.audioOnly.where((info) {
final isMp4a = info.codec.mimeType == "audio/mp4"; return info.codec.mimeType == "audio/mp4";
if (DesktopTools.platform.isLinux) {
return !isMp4a;
} else if (DesktopTools.platform.isMacOS ||
DesktopTools.platform.isIOS) {
return isMp4a;
} else {
return true;
}
}); });
return switch (preferences.audioQuality) { return switch (preferences.audioQuality) {

View File

@ -167,7 +167,7 @@ abstract class TypeConversionUtils {
track.name = metadata?.title ?? basenameWithoutExtension(file.path); track.name = metadata?.title ?? basenameWithoutExtension(file.path);
track.type = "track"; track.type = "track";
track.uri = file.path; track.uri = file.path;
track.durationMs = metadata?.durationMs?.toInt(); track.durationMs = (metadata?.durationMs?.toInt() ?? 0) * 1000;
return track; return track;
} }

View File

@ -330,14 +330,6 @@ packages:
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "3.0.0" version: "3.0.0"
colorize:
dependency: transitive
description:
name: colorize
sha256: "584746cd6ba1cba0633b6720f494fe6f9601c4170f0666c1579d2aa2a61071ba"
url: "https://pub.dev"
source: hosted
version: "3.0.0"
connectivity_plus: connectivity_plus:
dependency: transitive dependency: transitive
description: description:
@ -510,10 +502,10 @@ packages:
dependency: transitive dependency: transitive
description: description:
name: ffi name: ffi
sha256: a38574032c5f1dd06c4aee541789906c12ccaab8ba01446e800d9c5b79c4a978 sha256: ed5337a5660c506388a9f012be0288fb38b49020ce2b45fe1f8b8323fe429f99
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "2.0.1" version: "2.0.2"
file: file:
dependency: transitive dependency: transitive
description: description:
@ -734,10 +726,10 @@ packages:
dependency: transitive dependency: transitive
description: description:
name: flutter_rust_bridge name: flutter_rust_bridge
sha256: "34f5becca2df35955b2ec5e875349028ea609a826de7aade4de80534cf876b27" sha256: ff90d5ddd0cda6d94ed048cc9c4a4d993d1a4bb11605d60a1282fc1bbf173c77
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "1.72.1" version: "1.80.1"
flutter_secure_storage: flutter_secure_storage:
dependency: "direct main" dependency: "direct main"
description: description:
@ -1466,10 +1458,10 @@ packages:
dependency: transitive dependency: transitive
description: description:
name: puppeteer name: puppeteer
sha256: "1304d8044054a8c89df648ef12352cf840ed2d34bbfbfa03d91537c72ae0f2c7" sha256: "59e723cc5b69537159a7c34efd645dc08a6a1ac4647d7d7823606802c0f93cdb"
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "2.22.0" version: "3.2.0"
quiver: quiver:
dependency: transitive dependency: transitive
description: description: