working media player in ios and android

Co-authored-by: Copilot <copilot@github.com>
This commit is contained in:
2026-04-28 21:42:53 -07:00
co-authored by Copilot
parent 5e69d8f90a
commit 5363665fd8
12 changed files with 281 additions and 0 deletions
+17
View File
@@ -1,5 +1,6 @@
import 'dart:async';
import 'package:audio_session/audio_session.dart';
import 'package:flutter/foundation.dart';
import 'package:just_audio_background/just_audio_background.dart';
import 'package:just_audio/just_audio.dart';
@@ -24,10 +25,23 @@ class StreamingAudioBusinessObject extends ChangeNotifier {
late final StreamSubscription<PlayerState> _playerStateSubscription;
bool _isSourceLoaded = false;
bool _isPlaying = false;
bool _isAudioSessionConfigured = false;
bool get isPlaying => _isPlaying;
Future<void> _configureAudioSessionIfNeeded() async {
if (_isAudioSessionConfigured) {
return;
}
final session = await AudioSession.instance;
await session.configure(const AudioSessionConfiguration.music());
_isAudioSessionConfigured = true;
}
Future<void> play() async {
await _configureAudioSessionIfNeeded();
if (!_isSourceLoaded) {
await _player.setAudioSource(
AudioSource.uri(
@@ -36,12 +50,15 @@ class StreamingAudioBusinessObject extends ChangeNotifier {
id: 'kryz-live-stream',
title: 'KRYZ Live Stream',
artist: 'KRYZ Radio',
album: 'Live',
),
),
);
_isSourceLoaded = true;
}
final session = await AudioSession.instance;
await session.setActive(true);
await _player.play();
}