dispose method
Implementation
Future<void> dispose() async {
if (_isDisposed) return;
_isDisposed = true;
await _bufferingController.close();
await _playingController.close();
await _positionController.close();
await _durationController.close();
await _errorController.close();
await _initializedController.close();
await _showTipController.close();
await _player.dispose();
}