ToneSnap_FSX_Flutter/lib/modules/voice/home/home_controller.dart
fengshengxiong 422a3f8802 first commit
2024-06-11 11:53:38 +08:00

48 lines
2.3 KiB
Dart

import 'package:get/get.dart';
import 'package:tone_snap/components/base_easyloading.dart';
import 'package:tone_snap/controllers/player_controller.dart';
import 'package:tone_snap/data/models/voice_model.dart';
import 'package:tone_snap/generated/assets.dart';
import 'package:tone_snap/modules/voice/initial/initial_controller.dart';
import 'package:tone_snap/routes/app_routes.dart';
class HomeController extends GetxController {
static HomeController get to => Get.find<HomeController>();
var playerController = PlayerController.to;
var voiceList = [
VoiceModel(name: 'Child', path: Assets.audioChild, cover: Assets.changeVoiceAudioChild),
VoiceModel(name: 'Boy', path: Assets.audioBoy, cover: Assets.changeVoiceAudioBoy),
VoiceModel(name: 'Man', path: Assets.audioMan, cover: Assets.changeVoiceAudioMan),
VoiceModel(name: 'Elder', path: Assets.audioElder, cover: Assets.changeVoiceAudioElder),
// VoiceModel(name: 'Rapper', path: Assets.audioRapper, cover: Assets.changeVoiceAudioRapper),
VoiceModel(name: 'Robot', path: Assets.audioRobot, cover: Assets.changeVoiceAudioRobot),
VoiceModel(name: 'Girl', path: Assets.audioGirl, cover: Assets.changeVoiceAudioGirl),
VoiceModel(name: 'Sexy', path: Assets.audioSexy, cover: Assets.changeVoiceAudioSexy),
VoiceModel(name: 'Woman', path: Assets.audioWoman, cover: Assets.changeVoiceAudioWoman),
VoiceModel(name: 'Monsters', path: Assets.audioMonsters, cover: Assets.changeVoiceAudioMonsters),
];
void onTapItem(VoiceModel item) {
InitialController.to.currentPlayVoiceModel.value = item;
Get.toNamed(AppRoutes.playSound, arguments: item);
}
Future<void> onTapPlayBarPlay(VoiceModel item) async {
if (isPlayItem(item)) {
await playerController.pausePlay();
} else {
if (!identical(item, InitialController.to.currentPlayVoiceModel.value)) {
BaseEasyLoading.loading();
await playerController.setFilePath(item.path);
BaseEasyLoading.dismiss();
InitialController.to.currentPlayVoiceModel.value = item;
InitialController.to.isFavourite.value = InitialController.to.getIsFavouriteModel() != null;
}
await playerController.startPlay();
}
}
bool isPlayItem(VoiceModel item) {
return playerController.isPlaying.value && identical(InitialController.to.currentPlayVoiceModel.value, item);
}
}