Skip to content

Commit

Permalink
uploaded
Browse files Browse the repository at this point in the history
  • Loading branch information
sb-dor committed Aug 31, 2024
1 parent 3bd724f commit 41d3493
Show file tree
Hide file tree
Showing 2 changed files with 28 additions and 26 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -40,11 +40,19 @@ class _LibraryDownloadsAudioListenerPopupState extends State<LibraryDownloadsAud

bool _paused = false, _isVideo = false, _isShowingVideo = false, _backgroundAudioLoaded = false;

late MediaItem mediaItem;

@override
void initState() {
super.initState();
WidgetsBinding.instance.addObserver(this);
_isVideo = _globalFunctions.fileExtensionName(widget.baseDownloadedFileModel) == 'mp4';
mediaItem = MediaItem(
id: widget.baseDownloadedFileModel?.downloadedPath ?? '',
title: widget.baseDownloadedFileModel?.name ?? '',
artist: widget.baseDownloadedFileModel?.channelName ?? '',
artUri: Uri.parse("${widget.baseDownloadedFileModel?.imagePath}"),
);
WidgetsBinding.instance.addPostFrameCallback((timeStamp) async {
if (_isVideo) {
await _initVideo();
Expand Down Expand Up @@ -75,7 +83,10 @@ class _LibraryDownloadsAudioListenerPopupState extends State<LibraryDownloadsAud
Future<void> _initAudio() async {
_audioPlayer = AudioPlayer();

await _audioPlayer?.setFilePath(widget.baseDownloadedFileModel?.downloadedPath ?? "");
await _audioPlayer?.setFilePath(
widget.baseDownloadedFileModel?.downloadedPath ?? "",
tag: mediaItem,
);

await _audioPlayer?.setLoopMode(LoopMode.one);

Expand Down Expand Up @@ -112,7 +123,7 @@ class _LibraryDownloadsAudioListenerPopupState extends State<LibraryDownloadsAud
} else {
await _audioPlayer?.seek(Duration(seconds: number.toInt()));
}
setState(() {});
// setState(() {});
}

void _stop() async {
Expand Down Expand Up @@ -164,37 +175,28 @@ class _LibraryDownloadsAudioListenerPopupState extends State<LibraryDownloadsAud
} else if (state == AppLifecycleState.hidden) {
} else if (state == AppLifecycleState.inactive) {
} else if (state == AppLifecycleState.paused) {
if (!_backgroundAudioLoaded) {
if (!_backgroundAudioLoaded && _isVideo) {
//
_backgroundAudioLoaded = true;

final audioService = locator<JustAudioBackgroundHelper>();

audioService.setNewAudioSources(
localFilesPaths: [
MediaItem(
id: widget.baseDownloadedFileModel?.downloadedPath ?? '',
title: widget.baseDownloadedFileModel?.name ?? '',
artist: widget.baseDownloadedFileModel?.channelName ?? '',
artUri: Uri.parse("${widget.baseDownloadedFileModel?.imagePath}"),
),
mediaItem,
],
duration: _positionDuration,
);
}
} else if (state == AppLifecycleState.resumed) {
//
final audioHandler = locator<JustAudioBackgroundHelper>();

if (_isVideo) {
final audioHandler = locator<JustAudioBackgroundHelper>();
await _videoController?.seekTo(audioHandler.lastSavedDuration ?? Duration.zero);
} else {
await _audioPlayer?.seek(audioHandler.lastSavedDuration);
await audioHandler.stopPlayer();
_backgroundAudioLoaded = false;
}

await audioHandler.stopPlayer();

_backgroundAudioLoaded = false;
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ class JustAudioBackgroundHelper {
);
}

AudioPlayer? _player;
AudioPlayer? player;

Duration? lastSavedDuration;

Expand All @@ -23,7 +23,7 @@ class JustAudioBackgroundHelper {
Duration? duration,
List<MediaItem>? localFilesPaths,
}) async {
_player ??= AudioPlayer();
player ??= AudioPlayer();
final playlist = ConcatenatingAudioSource(
children: [
if (items != null)
Expand All @@ -47,7 +47,7 @@ class JustAudioBackgroundHelper {
);
final session = await AudioSession.instance;
await session.configure(const AudioSessionConfiguration.music());
_player?.playbackEventStream.listen(
player?.playbackEventStream.listen(
(event) {
//
},
Expand All @@ -56,29 +56,29 @@ class JustAudioBackgroundHelper {
},
);

_player?.positionStream.listen(
player?.positionStream.listen(
(event) {
lastSavedDuration = event;
},
);

await _player?.setAudioSource(playlist);
await player?.setAudioSource(playlist);

await _player?.seek(duration);
await player?.seek(duration);

await _player?.setLoopMode(LoopMode.one);
await player?.setLoopMode(LoopMode.one);

await _player?.play();
await player?.play();
}

Future<void> stopPlayer() async {
lastSavedDuration = null;
await _player?.stop();
await player?.stop();
}

Future<void> stopAndDispose() async {
await stopPlayer();
await _player?.dispose();
await player?.dispose();
}
}

Expand Down

0 comments on commit 41d3493

Please sign in to comment.