openPlaylist method
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();
}
}