resume method

dynamic resume()

Resumes all audio playback that was previously suspended.

This is typically called when the application regains focus or becomes active. Resumes music that was playing before suspension. Resumes sounds that were playing before suspension. Adjusts lastTimePlayed for sounds to account for the suspension duration, maintaining correct retrigger delay logic.

Implementation

resume() {
  if (musicState == ChannelState.suspended) {
    _music?.play();
    musicState = ChannelState.playing;
  }

  var timePassed = Duration.zero;

  if (_suspendedOn != null) {
    timePassed = DateTime.now().difference(_suspendedOn!);
  }

  _suspendedOn = null;

  for (var i = 0; i < _channels.length; ++i) {
    var channel = _channels[i];
    if (channel.sound?.lastTimePlayed != null) {
      channel.sound!.lastTimePlayed = channel.sound!.lastTimePlayed!.add(timePassed);
    }
    if (channel.state == ChannelState.suspended) {
      channel.state == ChannelState.paused;
      resumeChannel(i);
    }
  }
}