skip to Main Content

Hi I’am buiding a game and I loaded the required .wav files to be played when the player colloid with an obstacle :

  FlameAudio.play("file.wav")

But when I restart the app in debug mode it gives me an error:

OS Error: 
FileSystemException (FileSystemException: Cannot open file, path = 'C:UsersashoukryAppDataLocalTemp/file.wav'
"The process cannot access the file because it is being used by another process " 

What I am tried :
I used the following code but with no success and it gives the same error:

      AudioPLayer player = await FlameAudio.play("file.wav");

      player.dispose()

Also :

      AudioPLayer player = await FlameAudio.play("file.wav");

      player.release()

2

Answers


  1. Chosen as BEST ANSWER

    I figured out the problem just update the method load in audio_cache.dart:

    Future<Uri> load(String fileName) async {
        if (!loadedFiles.containsKey(fileName)) {
          //==========add these lines,it ensures that file is deleted before used again======
           final file = fileSystem.file('${await getTempDir()}/$fileName');
          if (file != null) {
            if (file.existsSync()) await file.delete();
          }
          //=================================
          loadedFiles[fileName] = await fetchToMemory(fileName);
        }
        return loadedFiles[fileName]!;
      }
    

  2. Hot reload is currently not supported in AudioPlayers, see:
    https://github.com/bluefireteam/audioplayers/issues/1424 and https://github.com/bluefireteam/audioplayers/issues/1120

    It will be quite hard to build support for currently since Flutter isn’t calling dispose when doing a hot reload.

    Login or Signup to reply.
Please signup or login to give your own answer.
Back To Top
Search