Remove bad quality streaming
This commit is contained in:
parent
7592660c0b
commit
149a5c922f
|
@ -1,9 +1,7 @@
|
||||||
// ignore_for_file: avoid_print
|
// ignore_for_file: avoid_print
|
||||||
|
|
||||||
import 'dart:convert';
|
import 'dart:convert';
|
||||||
import 'package:fip_parser_ui/globals.dart';
|
import 'dart:io';
|
||||||
import 'package:flutter/foundation.dart';
|
|
||||||
import 'package:universal_io/io.dart';
|
|
||||||
import 'package:fip_parser_ui/models/track.dart';
|
import 'package:fip_parser_ui/models/track.dart';
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:kplayer/kplayer.dart';
|
import 'package:kplayer/kplayer.dart';
|
||||||
|
@ -27,12 +25,11 @@ class HomeProvider with ChangeNotifier {
|
||||||
bool stop = false;
|
bool stop = false;
|
||||||
while (pageNbr < userPageNbr && !stop) {
|
while (pageNbr < userPageNbr && !stop) {
|
||||||
final req = Uri.parse(
|
final req = Uri.parse(
|
||||||
'${proxyHeader}www.radiofrance.fr:443/api/v1.7/stations/fip/webradios/$radio/songs?pageCursor=$cursor');
|
'https://www.radiofrance.fr/api/v1.7/stations/fip/webradios/$radio/songs?pageCursor=$cursor');
|
||||||
|
|
||||||
final res = await get(req, headers: {
|
final res = await get(req, headers: {
|
||||||
"Access-Control-Allow-Origin": "*",
|
"Access-Control-Allow-Origin": "*",
|
||||||
"Access-Control-Allow-Methods": "GET, HEAD, POST, OPTIONS",
|
"Access-Control-Allow-Methods": "GET, HEAD, POST, OPTIONS"
|
||||||
'Content-Type': 'text/plain'
|
|
||||||
});
|
});
|
||||||
if (res.statusCode == 200) {
|
if (res.statusCode == 200) {
|
||||||
Map body = jsonDecode(res.body);
|
Map body = jsonDecode(res.body);
|
||||||
|
@ -79,22 +76,22 @@ class HomeProvider with ChangeNotifier {
|
||||||
currentTrack = track;
|
currentTrack = track;
|
||||||
|
|
||||||
final currentVolume = player?.volume ?? 1;
|
final currentVolume = player?.volume ?? 1;
|
||||||
if (player?.playing ?? false) player?.stop();
|
player?.dispose();
|
||||||
Future.delayed(const Duration(milliseconds: 5));
|
Future.delayed(const Duration(milliseconds: 5));
|
||||||
|
|
||||||
|
if (track.file == null) {
|
||||||
if (track.id == null) {
|
if (track.id == null) {
|
||||||
final secondMatch = track.artiste == '' ? track.album : track.artiste;
|
final secondMatch = track.artiste == '' ? track.album : track.artiste;
|
||||||
final resultUrl =
|
final resultUrl =
|
||||||
await yt.search.search(track.title + ' ' + secondMatch!);
|
await yt.search.search(track.title + ' ' + secondMatch!);
|
||||||
track.id = resultUrl.first.id.value;
|
track.id = resultUrl.first.id.value;
|
||||||
}
|
}
|
||||||
const invidiousUrl =
|
|
||||||
'yewtu.be'; //yewtu.be vid.puffyan.us invidious.snopyta.org invidious.fdn.fr
|
|
||||||
|
|
||||||
player = Player.network(
|
player = Player.network(
|
||||||
"https://$invidiousUrl/embed/${track.id}?raw=1&listen=1&quality=dash");
|
"https://invidious.fdn.fr/embed/${track.id}?raw=1&listen=1");
|
||||||
print(track.id);
|
print(track.id);
|
||||||
|
} else {
|
||||||
|
player = Player.asset(track.file!.path);
|
||||||
|
}
|
||||||
player!.volume = currentVolume;
|
player!.volume = currentVolume;
|
||||||
|
|
||||||
try {
|
try {
|
||||||
|
@ -104,12 +101,11 @@ class HomeProvider with ChangeNotifier {
|
||||||
}
|
}
|
||||||
Future.delayed(const Duration(milliseconds: 500));
|
Future.delayed(const Duration(milliseconds: 500));
|
||||||
player!.callback = (PlayerEvent event) {
|
player!.callback = (PlayerEvent event) {
|
||||||
print(event.name);
|
|
||||||
if (event.name == 'position') {
|
if (event.name == 'position') {
|
||||||
currentTrack!.duration = player!.duration;
|
currentTrack!.duration = player!.duration;
|
||||||
playerProvider.reload();
|
playerProvider.reload();
|
||||||
}
|
}
|
||||||
if (event.name == 'status' && player!.position == player!.duration) {
|
if (event.name == 'status') {
|
||||||
var nextTrack = trackList
|
var nextTrack = trackList
|
||||||
.firstWhere((element) => element.number == track.number + 1);
|
.firstWhere((element) => element.number == track.number + 1);
|
||||||
playTrack(context, nextTrack);
|
playTrack(context, nextTrack);
|
||||||
|
@ -127,6 +123,8 @@ class HomeProvider with ChangeNotifier {
|
||||||
var streamManifest = StreamManifest(manifest.streams);
|
var streamManifest = StreamManifest(manifest.streams);
|
||||||
var streamInfo = streamManifest.audioOnly.withHighestBitrate();
|
var streamInfo = streamManifest.audioOnly.withHighestBitrate();
|
||||||
var stream = yt.videos.streamsClient.get(streamInfo);
|
var stream = yt.videos.streamsClient.get(streamInfo);
|
||||||
|
|
||||||
|
final filePath = await getDownloadsDirectory();
|
||||||
final fileName = '${track.title} - ${track.artiste}'
|
final fileName = '${track.title} - ${track.artiste}'
|
||||||
.replaceAll('\\', '')
|
.replaceAll('\\', '')
|
||||||
.replaceAll('/', '')
|
.replaceAll('/', '')
|
||||||
|
@ -137,12 +135,6 @@ class HomeProvider with ChangeNotifier {
|
||||||
.replaceAll('<', '')
|
.replaceAll('<', '')
|
||||||
.replaceAll('>', '')
|
.replaceAll('>', '')
|
||||||
.replaceAll('|', '');
|
.replaceAll('|', '');
|
||||||
|
|
||||||
if (!kIsWeb) {
|
|
||||||
final filePath = Platform.isAndroid
|
|
||||||
? Directory('/storage/emulated/0/Download')
|
|
||||||
: await getDownloadsDirectory();
|
|
||||||
|
|
||||||
var file = File('${filePath!.path}/$fileName.webm');
|
var file = File('${filePath!.path}/$fileName.webm');
|
||||||
var fileStream = file.openWrite();
|
var fileStream = file.openWrite();
|
||||||
|
|
||||||
|
@ -152,11 +144,12 @@ class HomeProvider with ChangeNotifier {
|
||||||
await fileStream.close();
|
await fileStream.close();
|
||||||
yt.close();
|
yt.close();
|
||||||
|
|
||||||
|
// Play it
|
||||||
track.file = file;
|
track.file = file;
|
||||||
|
// playTrack(context, track);
|
||||||
|
|
||||||
print(file.path);
|
print(file.path);
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
List<DropdownMenuItem<String>> get radioList {
|
List<DropdownMenuItem<String>> get radioList {
|
||||||
List<DropdownMenuItem<String>> menuItems = [
|
List<DropdownMenuItem<String>> menuItems = [
|
||||||
|
|
Loading…
Reference in New Issue