import 'package:flutter/foundation.dart'; import 'package:assets_audio_player/assets_audio_player.dart'; import 'package:flutter_ringtone_player/flutter_ringtone_player.dart'; import 'package:fluffychat/utils/platform_infos.dart'; class UserMediaManager { factory UserMediaManager() { return _instance; } UserMediaManager._internal(); static final UserMediaManager _instance = UserMediaManager._internal(); AssetsAudioPlayer? _assetsAudioPlayer; Future startRingingTone() async { if (PlatformInfos.isMobile) { await FlutterRingtonePlayer.playRingtone(volume: 80); } else if ((kIsWeb || PlatformInfos.isMacOS) && _assetsAudioPlayer != null) { const path = 'assets/sounds/phone.ogg'; final player = _assetsAudioPlayer = AssetsAudioPlayer.newPlayer(); await player.open(Audio(path), autoStart: true, loopMode: LoopMode.playlist); } return; } Future stopRingingTone() async { if (PlatformInfos.isMobile) { await FlutterRingtonePlayer.stop(); } await _assetsAudioPlayer?.stop(); _assetsAudioPlayer = null; return; } }