mirror of
https://github.com/gabehf/Fladder.git
synced 2026-03-08 23:18:16 -07:00
Init repo
This commit is contained in:
commit
764b6034e3
566 changed files with 212335 additions and 0 deletions
71
lib/wrappers/media_wrapper_interface.dart
Normal file
71
lib/wrappers/media_wrapper_interface.dart
Normal file
|
|
@ -0,0 +1,71 @@
|
|||
import 'package:audio_service/audio_service.dart';
|
||||
import 'package:media_kit/media_kit.dart';
|
||||
import 'package:media_kit_video/media_kit_video.dart';
|
||||
|
||||
class MediaPlayback extends BaseAudioHandler {
|
||||
Player? _player;
|
||||
VideoController? _controller;
|
||||
Player? get player => _player;
|
||||
VideoController? get controller => _controller;
|
||||
|
||||
Player setPlayer(Player player) => _player = player;
|
||||
VideoController setController(VideoController player) => _controller = player;
|
||||
|
||||
Future<void> setVolume(double volume) async => _player?.setVolume(volume);
|
||||
|
||||
Future<void> setSubtitleTrack(SubtitleTrack track) async => _player?.setSubtitleTrack(track);
|
||||
List<SubtitleTrack> get subTracks => _player?.state.tracks.subtitle ?? [];
|
||||
SubtitleTrack get subtitleTrack => _player?.state.track.subtitle ?? SubtitleTrack.no();
|
||||
|
||||
Future<void> setAudioTrack(AudioTrack track) async => _player?.setAudioTrack(track);
|
||||
List<AudioTrack> get audioTracks => _player?.state.tracks.audio ?? [];
|
||||
AudioTrack get audioTrack => _player?.state.track.audio ?? AudioTrack.no();
|
||||
|
||||
@override
|
||||
Future<void> seek(Duration position) async => player?.seek(position);
|
||||
|
||||
@override
|
||||
Future<void> play() async {
|
||||
await player?.play();
|
||||
return super.play();
|
||||
}
|
||||
|
||||
Future<void> open(
|
||||
Playable playable, {
|
||||
bool play = true,
|
||||
}) async {
|
||||
return player?.open(playable, play: play);
|
||||
}
|
||||
|
||||
@override
|
||||
Future<void> fastForward() async {
|
||||
if (player != null) {
|
||||
await player!.seek(player!.state.position + const Duration(seconds: 30));
|
||||
}
|
||||
return super.fastForward();
|
||||
}
|
||||
|
||||
@override
|
||||
Future<void> rewind() async {
|
||||
if (player != null) {
|
||||
await player?.seek(player!.state.position - const Duration(seconds: 10));
|
||||
}
|
||||
return super.rewind();
|
||||
}
|
||||
|
||||
@override
|
||||
Future<void> setSpeed(double speed) async {
|
||||
await player?.setRate(speed);
|
||||
return super.setSpeed(speed);
|
||||
}
|
||||
|
||||
@override
|
||||
Future<void> pause() async {
|
||||
playbackState.add(playbackState.value.copyWith(
|
||||
playing: false,
|
||||
controls: [MediaControl.play],
|
||||
));
|
||||
await player?.pause();
|
||||
return super.pause();
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue