mirror of
https://github.com/zarzet/SpotiFLAC-Mobile.git
synced 2026-10-12 02:37:18 +02:00
feat: audio analysis rescan and AAC conversion support
Audio Analysis: - Add rescan capability by bumping cache version - Display channel layout (stereo, 5.1, etc.) and bitrate - Use astats filter for more accurate peak/RMS measurements - Support more formats: mp4, ac3, eac3, mka, wv, ape, tta, aif - Only report bit depth for codecs that store it (FLAC, ALAC, WAV) - Validate cache for SAF content:// URIs Conversion: - Add AAC as conversion target format - Recognize ALAC as lossless source - Prevent accidental deletion when source and target URI match - Store format and bitrate in database after conversion Utilities: - Add audio_conversion_utils.dart for centralized conversion logic - Add isSameContentUri() helper for safe URI comparison
This commit is contained in:
1 parent
2a2d817314
commit
ff86869c33
8 files changed
+506
-177
No files matched your search
@@ -229,6 +229,22 @@ bool isContentUri(String? path) {
|
||||
return path != null && path.startsWith('content://');
|
||||
}
|
||||
|
||||
bool isSameContentUri(String? first, String? second) {
|
||||
if (first == null || second == null) return false;
|
||||
if (first == second) return true;
|
||||
if (!isContentUri(first) || !isContentUri(second)) return false;
|
||||
|
||||
String decode(String value) {
|
||||
try {
|
||||
return Uri.decodeFull(value);
|
||||
} catch (_) {
|
||||
return value;
|
||||
}
|
||||
}
|
||||
|
||||
return decode(first) == decode(second);
|
||||
}
|
||||
|
||||
/// Pattern matching CUE virtual path suffixes like #track01, #track12, etc.
|
||||
final _cueTrackSuffix = RegExp(r'#track\d+$');
|
||||
|
||||
|
||||
Reference in new issue
Block a user