openPlaylist method

Future<void> openPlaylist(
  1. List<MediaUrl> mediaUrls, {
  2. int startIndex = 0,
  3. bool play = true,
})

Implementation

Future<void> openPlaylist(
  List<MediaUrl> mediaUrls, {
  int startIndex = 0,
  bool play = true,
}) {
  _checkDisposed();
  try {
    if (mediaUrls.isEmpty) {
      throw ArgumentError('mediaUrls cannot be empty');
    }
    if (startIndex < 0 || startIndex >= mediaUrls.length) {
      throw ArgumentError('startIndex is out of range');
    }

    _playlist = Playlist(
      mediaUrls.map((url) => Media(url.url)).toList(),
      index: startIndex,
    );
    _currentPlaylistIndex = startIndex;
    _playing = play;
    _isInitialized = false;
    _showTip = false;

    if (!_initializedController.isClosed && !_isDisposed) {
      _initializedController.add(false);
    }
    if (!_showTipController.isClosed && !_isDisposed) {
      _showTipController.add(false);
    }

    _mediaUrl = mediaUrls[startIndex];
    _tipTime = _mediaUrl.tipTime;
    _tipWidget = _mediaUrl.tipWidget;
    _castWidget = _mediaUrl.castWidget;
    _castDevicesType = _mediaUrl.castDevicesType;

    return _player.open(_playlist!, play: play);
  } catch (e) {
    if (!_errorController.isClosed && !_isDisposed) {
      _errorController.add(e.toString());
    }
    return Future.value();
  }
}