mirror of
https://github.com/KRTirtho/spotube.git
synced 2025-09-13 16:05:18 +00:00
refactor: audio player and youtube client in separate files
This commit is contained in:
parent
a774817240
commit
ac84942917
@ -6,6 +6,7 @@ import 'package:spotube/components/player/player_controls.dart';
|
||||
import 'package:spotube/collections/routes.dart';
|
||||
import 'package:spotube/models/logger.dart';
|
||||
import 'package:spotube/provider/playlist_queue_provider.dart';
|
||||
import 'package:spotube/services/audio_player.dart';
|
||||
import 'package:spotube/utils/platform.dart';
|
||||
import 'package:window_manager/window_manager.dart';
|
||||
|
||||
|
@ -20,11 +20,11 @@ import 'package:spotube/entities/cache_track.dart';
|
||||
import 'package:spotube/collections/routes.dart';
|
||||
import 'package:spotube/collections/intents.dart';
|
||||
import 'package:spotube/models/logger.dart';
|
||||
import 'package:spotube/provider/audio_player_provider.dart';
|
||||
import 'package:spotube/provider/downloader_provider.dart';
|
||||
import 'package:spotube/provider/user_preferences_provider.dart';
|
||||
import 'package:spotube/provider/youtube_provider.dart';
|
||||
import 'package:spotube/services/audio_player.dart';
|
||||
import 'package:spotube/services/pocketbase.dart';
|
||||
import 'package:spotube/services/youtube.dart';
|
||||
import 'package:spotube/themes/dark_theme.dart';
|
||||
import 'package:spotube/themes/light_theme.dart';
|
||||
import 'package:spotube/utils/platform.dart';
|
||||
@ -147,7 +147,7 @@ void main(List<String> rawArgs) async {
|
||||
return Downloader(
|
||||
ref,
|
||||
queueInstance,
|
||||
yt: ref.watch(youtubeProvider),
|
||||
yt: youtube,
|
||||
downloadPath: ref.watch(
|
||||
userPreferencesProvider.select(
|
||||
(s) => s.downloadLocation,
|
||||
@ -258,12 +258,11 @@ class SpotubeState extends ConsumerState<Spotube> with WidgetsBindingObserver {
|
||||
ref.watch(userPreferencesProvider.select((s) => s.accentColorScheme));
|
||||
final backgroundMaterialColor = ref
|
||||
.watch(userPreferencesProvider.select((s) => s.backgroundColorScheme));
|
||||
final player = ref.watch(audioPlayerProvider);
|
||||
final youtube = ref.watch(youtubeProvider);
|
||||
|
||||
/// For enabling hot reload for audio player
|
||||
useEffect(() {
|
||||
return () {
|
||||
player.dispose();
|
||||
audioPlayer.dispose();
|
||||
youtube.close();
|
||||
};
|
||||
}, []);
|
||||
|
@ -7,9 +7,9 @@ import 'package:spotube/extensions/video.dart';
|
||||
import 'package:spotube/extensions/album_simple.dart';
|
||||
import 'package:spotube/extensions/artist_simple.dart';
|
||||
import 'package:spotube/models/track.dart';
|
||||
import 'package:spotube/provider/playlist_queue_provider.dart';
|
||||
import 'package:spotube/provider/user_preferences_provider.dart';
|
||||
import 'package:spotube/services/pocketbase.dart';
|
||||
import 'package:spotube/services/youtube.dart';
|
||||
import 'package:spotube/utils/platform.dart';
|
||||
import 'package:spotube/utils/primitive_utils.dart';
|
||||
import 'package:spotube/utils/service_utils.dart';
|
||||
|
@ -1,6 +0,0 @@
|
||||
import 'package:audioplayers/audioplayers.dart';
|
||||
import 'package:flutter_riverpod/flutter_riverpod.dart';
|
||||
|
||||
final audioPlayerProvider = Provider<AudioPlayer>((ref) {
|
||||
return AudioPlayer();
|
||||
});
|
@ -13,7 +13,7 @@ import 'package:spotube/components/shared/dialogs/replace_downloaded_dialog.dart
|
||||
import 'package:spotube/models/logger.dart';
|
||||
import 'package:spotube/models/spotube_track.dart';
|
||||
import 'package:spotube/provider/user_preferences_provider.dart';
|
||||
import 'package:spotube/provider/youtube_provider.dart';
|
||||
import 'package:spotube/services/youtube.dart';
|
||||
import 'package:spotube/utils/type_conversion_utils.dart';
|
||||
import 'package:youtube_explode_dart/youtube_explode_dart.dart' hide Comment;
|
||||
|
||||
@ -165,7 +165,7 @@ final downloaderProvider = ChangeNotifierProvider(
|
||||
return Downloader(
|
||||
ref,
|
||||
queueInstance,
|
||||
yt: ref.watch(youtubeProvider),
|
||||
yt: youtube,
|
||||
downloadPath: ref.watch(
|
||||
userPreferencesProvider.select(
|
||||
(s) => s.downloadLocation,
|
||||
|
@ -8,6 +8,7 @@ import 'package:spotube/models/spotube_track.dart';
|
||||
import 'package:spotube/extensions/track.dart';
|
||||
import 'package:spotube/provider/blacklist_provider.dart';
|
||||
import 'package:spotube/provider/user_preferences_provider.dart';
|
||||
import 'package:spotube/services/audio_player.dart';
|
||||
import 'package:spotube/services/linux_audio_service.dart';
|
||||
import 'package:spotube/services/mobile_audio_service.dart';
|
||||
import 'package:spotube/utils/persisted_state_notifier.dart';
|
||||
@ -16,9 +17,6 @@ import 'package:spotube/utils/type_conversion_utils.dart';
|
||||
import 'package:youtube_explode_dart/youtube_explode_dart.dart' hide Playlist;
|
||||
import 'package:collection/collection.dart';
|
||||
|
||||
final audioPlayer = AudioPlayer();
|
||||
final youtube = YoutubeExplode();
|
||||
|
||||
class PlaylistQueue {
|
||||
final Set<Track> tracks;
|
||||
final Set<Track> tempTracks;
|
||||
|
@ -1,4 +0,0 @@
|
||||
import 'package:flutter_riverpod/flutter_riverpod.dart';
|
||||
import 'package:youtube_explode_dart/youtube_explode_dart.dart';
|
||||
|
||||
final youtubeProvider = Provider<YoutubeExplode>((ref) => YoutubeExplode());
|
3
lib/services/audio_player.dart
Normal file
3
lib/services/audio_player.dart
Normal file
@ -0,0 +1,3 @@
|
||||
import 'package:audioplayers/audioplayers.dart';
|
||||
|
||||
final audioPlayer = AudioPlayer();
|
@ -6,6 +6,7 @@ import 'package:flutter_riverpod/flutter_riverpod.dart';
|
||||
import 'package:spotube/provider/dbus_provider.dart';
|
||||
import 'package:spotube/models/spotube_track.dart';
|
||||
import 'package:spotube/provider/playlist_queue_provider.dart';
|
||||
import 'package:spotube/services/audio_player.dart';
|
||||
import 'package:spotube/utils/type_conversion_utils.dart';
|
||||
import 'package:window_manager/window_manager.dart';
|
||||
|
||||
|
@ -4,12 +4,12 @@ import 'package:audio_service/audio_service.dart';
|
||||
import 'package:audio_session/audio_session.dart';
|
||||
import 'package:audioplayers/audioplayers.dart';
|
||||
import 'package:spotube/provider/playlist_queue_provider.dart';
|
||||
import 'package:spotube/services/audio_player.dart';
|
||||
|
||||
class MobileAudioService extends BaseAudioHandler {
|
||||
AudioSession? session;
|
||||
final PlaylistQueueNotifier playlistNotifier;
|
||||
final PlaylistQueueNotifier playlistNotifier;
|
||||
|
||||
|
||||
PlaylistQueue? get playlist => playlistNotifier.state;
|
||||
|
||||
MobileAudioService(this.playlistNotifier) {
|
||||
|
3
lib/services/youtube.dart
Normal file
3
lib/services/youtube.dart
Normal file
@ -0,0 +1,3 @@
|
||||
import 'package:youtube_explode_dart/youtube_explode_dart.dart';
|
||||
|
||||
final youtube = YoutubeExplode();
|
Loading…
Reference in New Issue
Block a user