play method

Future<Result> play(
  1. String url, {
  2. bool repeatMode = false,
  3. bool respectAudioFocus = false,
  4. Duration position = const Duration(milliseconds: 0),
  5. PlayerMode playerMode = PlayerMode.BACKGROUND,
  6. AudioNotification? audioNotification,
})

Plays an audio.

If PlayerMode is set to PlayerMode.FOREGROUND, then you also need to pass: audioNotification for providing the foreground notification.

Implementation

Future<Result> play(
  String url, {
  bool repeatMode = false,
  bool respectAudioFocus = false,
  Duration position = const Duration(milliseconds: 0),
  PlayerMode playerMode = PlayerMode.BACKGROUND,
  AudioNotification? audioNotification,
}) async {
  if (playerMode == PlayerMode.FOREGROUND && audioNotification == null)
    return Result.ERROR;

  return ResultMap[await _invokeMethod('play', {
        'url': url,
        'repeatMode': repeatMode,
        'isBackground': playerMode == PlayerMode.BACKGROUND,
        'respectAudioFocus': respectAudioFocus,
        'position': position.inMilliseconds,
        // audio notification object
        'smallIconFileName': audioNotification?.smallIconFileName,
        'title': audioNotification?.title,
        'subTitle': audioNotification?.subTitle,
        'largeIconUrl': audioNotification?.largeIconUrl,
        'isLocal': audioNotification?.isLocal,
        'notificationDefaultActions': NotificationDefaultActionsMap[
            audioNotification?.notificationDefaultActions],
        'notificationActionCallbackMode': NotificationActionCallbackModeMap[
            audioNotification?.notificationActionCallbackMode],
        'notificationCustomActions': NotificationCustomActionsMap[
            audioNotification?.notificationCustomActions],
      }) as int] ??
      Result.ERROR;
}