29 lines
704 B
Dart
29 lines
704 B
Dart
import 'package:media_kit/media_kit.dart';
|
|
import 'package:media_kit/media_kit.dart' as media_kit;
|
|
|
|
class PlaybackService {
|
|
static final PlaybackService _instance = PlaybackService._();
|
|
factory PlaybackService() => _instance;
|
|
PlaybackService._();
|
|
|
|
late final Player _player;
|
|
bool get isInitialized => _player.state.playing;
|
|
|
|
void init() {
|
|
_player = Player();
|
|
}
|
|
|
|
Future<void> play(String url) async {
|
|
await _player.open(Media(url));
|
|
await _player.play();
|
|
}
|
|
|
|
void pause() => _player.pause();
|
|
void resume() => _player.play();
|
|
void stop() => _player.stop();
|
|
void dispose() => _player.dispose();
|
|
|
|
// 状态流
|
|
Stream<PlayerState> get stateStream => _player.stream;
|
|
}
|