createNewAudioCache method

Future<bool> createNewAudioCache({
  1. required String playerId,
  2. required String route,
  3. required AudioInAppType audioInAppType,
})

Methods Users

Method to add the audio in cache. (Required before you can play).

Implementation

Future<bool> createNewAudioCache({
  required String playerId,
  required String route,
  required AudioInAppType audioInAppType
}) async{
  _initialize();
  log('createNewAudioCache $playerId', name: _NameLog);
  try{
    if(audioInAppType == AudioInAppType.determined){
      final AudioPlayer _audio = AudioPlayer(playerId: playerId,);
      await _audio.setVolume(0.0);
      await _audio.setSource(AssetSource(route));
      await _audio.setReleaseMode(ReleaseMode.stop);
      if(Platform.isIOS){
        await _audio.resume();
        await _audio.stop();
      }

      await _audio.setVolume(1.0);

      await _audio.setPlayerMode(PlayerMode.lowLatency);
      _audioCacheMap[playerId] = _audio;

      if(!_audioBackgroundCacheList.contains(playerId)){
        _audioBackgroundCacheList.add(playerId);
      }
    }

    if(audioInAppType == AudioInAppType.background){
      final AudioPlayer _audio = AudioPlayer(playerId: playerId,);
      await _audio.setVolume(0.0);
      await _audio.setSource(AssetSource(route));
      if(Platform.isIOS){
        await _audio.resume();
        await _audio.stop();
      }

      await _audio.setVolume(1.0);

      await _audio.setReleaseMode(ReleaseMode.loop);
      _audioBackgroundCacheMap[playerId] = _audio;
      if(!_audioBackgroundCacheList.contains(playerId)){
        _audioBackgroundCacheList.add(playerId);
      }
    }




    /*if(audioInAppType == AudioInAppType.determined){
      await _audio.setPlayerMode(PlayerMode.lowLatency);
      _audioCacheMap[playerId] = _audio;
    }
    if(audioInAppType == AudioInAppType.background){

    }*/
    _audioCacheType[playerId] = audioInAppType;
  } catch(e){
    log('ERROR', name: _NameLog);
    log(e.toString(), name: _NameLog);
    return false;
  }
  return true;
}