abstract class RadioPlayer { Future play({@required String url}); Future pause(); } class JustAudioPlayer extends RadioPlayer { final audioPlayer = AudioPlayer(); var _isUrlSet = false; @override Future pause() { return audioPlayer.pause(); } @override Future play({@required String url}) async { if (!_isUrlSet) { await audioPlayer.setUrl(url); _isUrlSet = true; } return audioPlayer.play(); } }