loading streaming url at runtime dynamically

This commit is contained in:
2024-09-23 16:46:29 -04:00
parent 36e13ecb50
commit bc30c9586e
5 changed files with 25 additions and 4 deletions

View File

@@ -1,11 +1,28 @@
import 'package:audio_service/audio_service.dart';
import 'package:audio_session/audio_session.dart';
import 'package:audioplayers/audioplayers.dart';
import 'package:http/http.dart' as http;
import 'ListenHandler.dart';
late final ListenHandler _listenHandler;
late final AudioSession _session;
final String _fallback =
"https://generic.ything.app/music/separation-185196.mp3";
final _urlSource = Uri.parse("https://generic.ything.app/music/player.url");
late final String _radioUrl;
Future<void> loadCurrentUrl() async {
final resp = await http.get(_urlSource);
if (resp.statusCode == 200) {
_radioUrl = resp.body.trim();
} else {
_radioUrl = _fallback;
print('Request for current streaming url failed');
}
}
Future<void> setupListenHandler() async {
_listenHandler = await AudioService.init(
builder: () => ListenHandler(),
@@ -51,6 +68,10 @@ Future<void> setupListenHandler() async {
ListenHandler getListenHandlder() => _listenHandler;
UrlSource getUrlSource() {
return UrlSource(_radioUrl, mimeType: "audio/mpeg");
}
Future<bool> startAudioSession() async {
return await _session.setActive(true);
}