Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Bug Report: AudioPlayer.dispose() Does Not Close All Internal Streams (Behavior Subject) #1389

Closed
haonguyenuet opened this issue Jan 9, 2025 · 1 comment
Assignees
Labels
1 backlog bug Something isn't working

Comments

@haonguyenuet
Copy link

Description

In just_audio version 0.9.42, calling the dispose() method on AudioPlayer does not properly close internal streams, potentially leading to resource leaks and increased memory usage.

Steps to Reproduce

  1. Setup:

    • Add just_audio version 0.9.42 to pubspec.yaml:
      dependencies:
        just_audio: 0.9.42
    • Run flutter pub get.
  2. Implement AudioPlayer:

    import 'package:just_audio/just_audio.dart';
    
    void main() {
      final player = AudioPlayer();
      player.setUrl('https://example.com/audio.mp3');
      player.play();
      player.dispose();
    }
  3. Monitor Resource Usage:

    • Use profiling tools (e.g., Dart DevTools) to check for memory leaks after disposing the player.

Expected Behavior

Calling dispose() on AudioPlayer should close all internal streams and release resources to prevent memory leaks.

Actual Behavior

Internal streams remain open after dispose() is called, leading to potential resource leaks.

Environment

  • Package: just_audio 0.9.42
  • Flutter SDK: 3.27.1
  • Device: iPhone 13
  • OS: iOS 17
@haonguyenuet haonguyenuet added 1 backlog bug Something isn't working labels Jan 9, 2025
Copy link

github-actions bot commented Jan 9, 2025

Oops, it appears that your issue did not follow the template and is missing one or more required sections. Please open a new issue, and provide all required sections and information.

FAQ:

  1. Do I really need to submit a minimal reproduction project for a bug? A: Yes. I prioritise bugs secondarily on how many people are affected, and primarily on whether the bug report is complete, in the sense that it enables me to immediately reproduce it and start working on a fix. If a bug is important to you, the best thing you can do is to provide all requested information ASAP so that I can start looking into it ASAP.

  2. I think I supplied all required information, so did the bot make a mistake? A: The bot only checks the section headings, so when you post a new issue, make sure you leave the section headings intact. (Note that because of this, it is even possible to trick the bot by including only the section headings, and then not providing the requested information under each heading. This is frowned upon, and the issue will be closed manually.)

@github-actions github-actions bot closed this as completed Jan 9, 2025
@haonguyenuet haonguyenuet changed the title **Bug Report: AudioPlayer.dispose() Does Not Close All Internal Streams** Bug Report: AudioPlayer.dispose() Does Not Close All Internal Streams (Behavior Subject) Jan 9, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
1 backlog bug Something isn't working
Projects
None yet
Development

No branches or pull requests

2 participants