|
@@ -9,7 +9,6 @@ import 'package:electronic_assistant/data/repositories/task_repository.dart';
|
|
|
import 'package:electronic_assistant/utils/audio_picker_utils.dart';
|
|
import 'package:electronic_assistant/utils/audio_picker_utils.dart';
|
|
|
import 'package:electronic_assistant/handler/event_handler.dart';
|
|
import 'package:electronic_assistant/handler/event_handler.dart';
|
|
|
import 'package:electronic_assistant/module/chat/view.dart';
|
|
import 'package:electronic_assistant/module/chat/view.dart';
|
|
|
-import 'package:electronic_assistant/module/home/controller.dart';
|
|
|
|
|
import 'package:electronic_assistant/module/login/view.dart';
|
|
import 'package:electronic_assistant/module/login/view.dart';
|
|
|
import 'package:electronic_assistant/module/store/view.dart';
|
|
import 'package:electronic_assistant/module/store/view.dart';
|
|
|
import 'package:electronic_assistant/module/talk/summary/view.dart';
|
|
import 'package:electronic_assistant/module/talk/summary/view.dart';
|
|
@@ -109,6 +108,8 @@ class TalkController extends BaseController {
|
|
|
|
|
|
|
|
String? eventTag;
|
|
String? eventTag;
|
|
|
|
|
|
|
|
|
|
+ bool isLocalFileHas = false;
|
|
|
|
|
+
|
|
|
@override
|
|
@override
|
|
|
void onReady() {
|
|
void onReady() {
|
|
|
super.onReady();
|
|
super.onReady();
|
|
@@ -184,6 +185,10 @@ class TalkController extends BaseController {
|
|
|
} else {
|
|
} else {
|
|
|
isUploading.value = false;
|
|
isUploading.value = false;
|
|
|
}
|
|
}
|
|
|
|
|
+ _loadAudioFile(bean);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ Future<void> _loadAudioFile(TalkBean? bean, {bool? loadPlay}) async {
|
|
|
try {
|
|
try {
|
|
|
Uri? uri;
|
|
Uri? uri;
|
|
|
if (bean?.isExample == true && bean?.audioUrl != null) {
|
|
if (bean?.isExample == true && bean?.audioUrl != null) {
|
|
@@ -198,6 +203,9 @@ class TalkController extends BaseController {
|
|
|
throw '音频文件不存在';
|
|
throw '音频文件不存在';
|
|
|
}
|
|
}
|
|
|
await _audioPlayer.setAudioSource(AudioSource.uri(uri));
|
|
await _audioPlayer.setAudioSource(AudioSource.uri(uri));
|
|
|
|
|
+ if (loadPlay == true) {
|
|
|
|
|
+ clickPlayAudio();
|
|
|
|
|
+ }
|
|
|
audioFileIsExist = true;
|
|
audioFileIsExist = true;
|
|
|
} catch (e) {
|
|
} catch (e) {
|
|
|
audioFileIsExist = false;
|
|
audioFileIsExist = false;
|
|
@@ -219,11 +227,23 @@ class TalkController extends BaseController {
|
|
|
_audioPlayer.seek(newPosition);
|
|
_audioPlayer.seek(newPosition);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- void clickPlayAudio() {
|
|
|
|
|
- if (audioFileIsExist != true) {
|
|
|
|
|
|
|
+ void clickPlayAudio() async {
|
|
|
|
|
+ if (audioFileIsExist != true && isLocalFileHas == false) {
|
|
|
ToastUtil.showToast(StringName.talkFileNotFind.tr);
|
|
ToastUtil.showToast(StringName.talkFileNotFind.tr);
|
|
|
return;
|
|
return;
|
|
|
}
|
|
}
|
|
|
|
|
+ if (isLocalFileHas == true &&
|
|
|
|
|
+ audioFileIsExist == false &&
|
|
|
|
|
+ !await AudioPickerUtils.hasPermission()) {
|
|
|
|
|
+ bool has = await AudioPickerUtils.requestPermissionExtend();
|
|
|
|
|
+ if (has == false) {
|
|
|
|
|
+ ToastUtil.showToast(StringName.authorizationFailed.tr);
|
|
|
|
|
+ return;
|
|
|
|
|
+ }
|
|
|
|
|
+ //重新加载
|
|
|
|
|
+ _loadAudioFile(talkBean.value, loadPlay: true);
|
|
|
|
|
+ return;
|
|
|
|
|
+ }
|
|
|
if (isAudioLoading) {
|
|
if (isAudioLoading) {
|
|
|
ToastUtil.showToast(StringName.talkAudioLoading.tr);
|
|
ToastUtil.showToast(StringName.talkAudioLoading.tr);
|
|
|
return;
|
|
return;
|
|
@@ -243,6 +263,18 @@ class TalkController extends BaseController {
|
|
|
return;
|
|
return;
|
|
|
}
|
|
}
|
|
|
File? file = await getFileByTalk(talkBean.value);
|
|
File? file = await getFileByTalk(talkBean.value);
|
|
|
|
|
+ if (isLocalFileHas == true &&
|
|
|
|
|
+ audioFileIsExist == false &&
|
|
|
|
|
+ !await AudioPickerUtils.hasPermission()) {
|
|
|
|
|
+ bool has = await AudioPickerUtils.requestPermissionExtend();
|
|
|
|
|
+ if (has == false) {
|
|
|
|
|
+ ToastUtil.showToast(StringName.authorizationFailed.tr);
|
|
|
|
|
+ return;
|
|
|
|
|
+ }
|
|
|
|
|
+ //重新上传
|
|
|
|
|
+ _checkFileSizeAndNet();
|
|
|
|
|
+ return;
|
|
|
|
|
+ }
|
|
|
if (file == null || !file.existsSync()) {
|
|
if (file == null || !file.existsSync()) {
|
|
|
ToastUtil.showToast(StringName.talkUploadFileNotExist.tr);
|
|
ToastUtil.showToast(StringName.talkUploadFileNotExist.tr);
|
|
|
return;
|
|
return;
|
|
@@ -500,6 +532,25 @@ class TalkController extends BaseController {
|
|
|
agendaNameController.clear();
|
|
agendaNameController.clear();
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+ Future<File?> getFileByTalk(TalkBean? bean) async {
|
|
|
|
|
+ isLocalFileHas = false;
|
|
|
|
|
+ if (bean == null) {
|
|
|
|
|
+ return null;
|
|
|
|
|
+ }
|
|
|
|
|
+ if (bean.uploadType == TalkUploadType.localUpload) {
|
|
|
|
|
+ String? audioId =
|
|
|
|
|
+ FileUploadCheckHelper.getLocalAudioId(bean.localAudioUrl);
|
|
|
|
|
+ if (audioId != null && audioId.isNotEmpty) {
|
|
|
|
|
+ isLocalFileHas = true;
|
|
|
|
|
+ return await AudioPickerUtils.getAssetFile(audioId);
|
|
|
|
|
+ } else {
|
|
|
|
|
+ return await FileUploadCheckHelper.getChoiceUploadFile(bean.id);
|
|
|
|
|
+ }
|
|
|
|
|
+ } else {
|
|
|
|
|
+ return await RecordController.getRecordFile(bean.id);
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
@override
|
|
@override
|
|
|
void onClose() {
|
|
void onClose() {
|
|
|
super.onClose();
|
|
super.onClose();
|
|
@@ -509,20 +560,3 @@ class TalkController extends BaseController {
|
|
|
_agendaNameController?.dispose();
|
|
_agendaNameController?.dispose();
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
-
|
|
|
|
|
-Future<File?> getFileByTalk(TalkBean? bean) async {
|
|
|
|
|
- if (bean == null) {
|
|
|
|
|
- return null;
|
|
|
|
|
- }
|
|
|
|
|
- if (bean.uploadType == TalkUploadType.localUpload) {
|
|
|
|
|
- String? audioId = FileUploadCheckHelper.getLocalAudioId(bean.localAudioUrl);
|
|
|
|
|
- if (audioId != null && audioId.isNotEmpty) {
|
|
|
|
|
- return await AudioPickerUtils.getAssetFile(
|
|
|
|
|
- FileUploadCheckHelper.getLocalAudioId(bean.localAudioUrl));
|
|
|
|
|
- } else {
|
|
|
|
|
- return await FileUploadCheckHelper.getChoiceUploadFile(bean.id);
|
|
|
|
|
- }
|
|
|
|
|
- } else {
|
|
|
|
|
- return await RecordController.getRecordFile(bean.id);
|
|
|
|
|
- }
|
|
|
|
|
-}
|
|
|