diff --git a/b0esche_cloud/lib/widgets/audio_player_bar.dart b/b0esche_cloud/lib/widgets/audio_player_bar.dart index 393827e..2aec8d3 100644 --- a/b0esche_cloud/lib/widgets/audio_player_bar.dart +++ b/b0esche_cloud/lib/widgets/audio_player_bar.dart @@ -6,8 +6,8 @@ import '../theme/app_theme.dart'; import '../theme/modern_glass_button.dart'; // Conditional imports for audio -import 'package:just_audio/just_audio.dart' - if (dart.library.html) 'web_audio_player.dart'; +import 'package:just_audio/just_audio.dart' as just_audio; +import 'web_audio_player.dart' as web_audio; class AudioPlayerBar extends StatefulWidget { final String fileName; @@ -29,7 +29,7 @@ class AudioPlayerBar extends StatefulWidget { class _AudioPlayerBarState extends State with SingleTickerProviderStateMixin { - late AudioPlayer _audioPlayer; + dynamic _audioPlayer; late AnimationController _iconController; Duration _duration = Duration.zero; Duration _position = Duration.zero; @@ -43,7 +43,7 @@ class _AudioPlayerBarState extends State @override void initState() { super.initState(); - _audioPlayer = AudioPlayer(); + _audioPlayer = kIsWeb ? web_audio.AudioPlayer() : just_audio.AudioPlayer(); _iconController = AnimationController( vsync: this, duration: const Duration(milliseconds: 250), @@ -67,7 +67,7 @@ class _AudioPlayerBarState extends State try { if (kIsWeb) { // Web implementation - await (_audioPlayer as dynamic).setUrl( + await _audioPlayer.setUrl( widget.fileUrl, mimeType: widget.mimeType, ); @@ -109,10 +109,7 @@ class _AudioPlayerBarState extends State } else { // Mobile implementation (just_audio) await _audioPlayer.setAudioSource( - // ignore: undefined_method - AudioSource.uri( - Uri.parse(widget.fileUrl), - ), // ignore: undefined_getter + just_audio.AudioSource.uri(Uri.parse(widget.fileUrl)), ); _audioPlayer.durationStream.firstWhere((d) => d != null).then(( d,