fix old url generation + try mpv on ios
This commit is contained in:
parent
b5df20735e
commit
f2f862a406
|
@ -157,8 +157,7 @@ class DeezerAudioSource extends StreamAudioSource {
|
|||
int dropBytes = start % DeezerAudio.chunkSize;
|
||||
_logger.finest(
|
||||
"deezerStart: $deezerStart (actual start: $start), end: $end, dropBytes: $dropBytes");
|
||||
final stream = DeezerAudio.decryptionStream(res.stream,
|
||||
start: start, trackId: trackId);
|
||||
final stream = _deezerAudio.stream(res.stream, start: start);
|
||||
|
||||
final cl = res.contentLength! - dropBytes;
|
||||
|
||||
|
|
|
@ -325,15 +325,17 @@ class DeezerAPI {
|
|||
}),
|
||||
headers: headers,
|
||||
);
|
||||
print('getTracksUrl($trackTokens, $format)');
|
||||
print(response.body);
|
||||
final data = (jsonDecode(response.body) as Map)['data'] as List;
|
||||
return data.map((data) {
|
||||
if (data['errors'] != null) {
|
||||
if (data['errors'][0]['code'] == 2002) {
|
||||
return GetTrackUrlResponse(error: 'Wrong geolocation');
|
||||
return GetTrackUrlResponse(
|
||||
error: {'code': 2002, 'message': 'Wrong geolocation'});
|
||||
}
|
||||
|
||||
return GetTrackUrlResponse(
|
||||
error: (data['errors'][0] as Map).toString());
|
||||
return GetTrackUrlResponse(error: data['errors'][0] as Map);
|
||||
}
|
||||
|
||||
if (data['media'] == null) return GetTrackUrlResponse();
|
||||
|
|
|
@ -33,6 +33,7 @@ class DeezerAudio {
|
|||
trackId: trackId,
|
||||
mediaVersion: mediaVersion);
|
||||
quality = res.quality;
|
||||
print('PREVIOUS TRACKID: $trackId, NEW TRACKID: ${res.trackId}');
|
||||
trackId = res.trackId;
|
||||
return (
|
||||
uri: res.uri,
|
||||
|
@ -205,6 +206,9 @@ class DeezerAudio {
|
|||
return uri;
|
||||
}
|
||||
|
||||
Stream<List<int>> stream(Stream<List<int>> source, {required int start}) =>
|
||||
decryptionStream(source, start: start, trackId: trackId);
|
||||
|
||||
static List<int> getKey(String id) {
|
||||
final secret = utf8.encode('g4el58wc0zvf9na1');
|
||||
final idmd5 =
|
||||
|
@ -235,6 +239,7 @@ class DeezerAudio {
|
|||
final deezerStart = start - dropBytes;
|
||||
int counter = deezerStart ~/ chunkSize;
|
||||
final buffer = List<int>.empty(growable: true);
|
||||
print('GETTING KEY FOR $trackId');
|
||||
final key = getKey(trackId);
|
||||
|
||||
await for (var bytes in source) {
|
||||
|
@ -309,12 +314,14 @@ class DeezerAudio {
|
|||
trackToken, quality.toDeezerQualityString());
|
||||
if (res.error != null) {
|
||||
try {
|
||||
final json = jsonDecode(res.error!);
|
||||
final json = res.error!;
|
||||
if (json['code'] == 2001) {
|
||||
// token expired.
|
||||
return getTrackUrl(deezerAPI, trackId, trackToken, 0,
|
||||
quality: quality);
|
||||
}
|
||||
|
||||
throw Exception(res.error!);
|
||||
} catch (e) {}
|
||||
_logger.warning('Error while getting track url: ${res.error!}');
|
||||
return null;
|
||||
|
|
|
@ -1626,6 +1626,6 @@ class TrackUrlSource {
|
|||
|
||||
class GetTrackUrlResponse {
|
||||
final List<TrackUrlSource>? sources;
|
||||
final String? error;
|
||||
final Map? error;
|
||||
GetTrackUrlResponse({this.sources, this.error});
|
||||
}
|
||||
|
|
|
@ -140,7 +140,7 @@ class AudioPlayerTask extends BaseAudioHandler {
|
|||
|
||||
Future<void> _start(AudioPlayerTaskInitArguments initArgs) async {
|
||||
// Linux and Windows support
|
||||
JustAudioMediaKit.ensureInitialized();
|
||||
JustAudioMediaKit.ensureInitialized(iOS: true);
|
||||
JustAudioMediaKit.title = 'Freezer';
|
||||
JustAudioMediaKit.protocolWhitelist = const ['http'];
|
||||
//JustAudioMediaKit.bufferSize = 128;
|
||||
|
|
|
@ -879,6 +879,14 @@ packages:
|
|||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "1.1.10+1"
|
||||
media_kit_libs_ios_audio:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
name: media_kit_libs_ios_audio
|
||||
sha256: "78ccf04e27d6b4ba00a355578ccb39b772f00d48269a6ac3db076edf2d51934f"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "1.1.4"
|
||||
media_kit_libs_linux:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
|
|
|
@ -88,6 +88,7 @@ dependencies:
|
|||
# Player libs for Linux and windows
|
||||
media_kit_libs_linux: any
|
||||
media_kit_libs_windows_audio: any
|
||||
media_kit_libs_ios_audio: any
|
||||
|
||||
# Audio service plugin for Linux (MPRIS)
|
||||
audio_service_mpris: ^0.1.3
|
||||
|
|
Loading…
Reference in New Issue