Browse Source

Merge branch 'dev' of https://git.onewaygame.cn/deepsound/deepvoice_client into liwei

newdev_shunjiawei
liwei1dao 1 year ago
parent
commit
c1a93afcee
  1. 10
      lib/modules/meeting/controllers/meeting_details_controller.dart
  2. 55
      lib/modules/meeting/views/speaker_all_bottom_sheet.dart
  3. 1
      pubspec.yaml

10
lib/modules/meeting/controllers/meeting_details_controller.dart

@ -29,6 +29,9 @@ class MeetingDetailsController extends GetxController
RxInt currentDuration = 0.obs; RxInt currentDuration = 0.obs;
RxInt speakerAllStarttime = (-1).obs;
RxInt speakerAllEndtime = (-1).obs;
int id = 0; int id = 0;
RxBool isLoading = true.obs; RxBool isLoading = true.obs;
@ -103,6 +106,13 @@ class MeetingDetailsController extends GetxController
playerController.setFinishMode(finishMode: FinishMode.pause); playerController.setFinishMode(finishMode: FinishMode.pause);
playerController.onCurrentDurationChanged.listen((int position) { playerController.onCurrentDurationChanged.listen((int position) {
currentDuration.value = position; currentDuration.value = position;
if (speakerAllEndtime.value > 0) {
if (position >= speakerAllEndtime.value) {
playerController.pausePlayer();
speakerAllStarttime.value = -1;
speakerAllEndtime.value = -1;
}
}
}); });
if (meetingDetails.value.tasktype == 1) { if (meetingDetails.value.tasktype == 1) {
List speakerList = await SqfliteApi.getMeetingSpeaker(id); List speakerList = await SqfliteApi.getMeetingSpeaker(id);

55
lib/modules/meeting/views/speaker_all_bottom_sheet.dart

@ -27,9 +27,20 @@ class _SpeakerAllBottomSheetState extends State<SpeakerAllBottomSheet> {
@override @override
void initState() { void initState() {
super.initState(); super.initState();
_controller.playerController.pausePlayer();
_controller.speakerAllStarttime.value = -1;
_controller.speakerAllEndtime.value = -1;
_getSpeakerList(); _getSpeakerList();
} }
@override
void dispose() {
_controller.playerController.pausePlayer();
_controller.speakerAllStarttime.value = -1;
_controller.speakerAllEndtime.value = -1;
super.dispose();
}
void _getSpeakerList() { void _getSpeakerList() {
_historySpeakerList = _storage.read("speaker_list") ?? []; _historySpeakerList = _storage.read("speaker_list") ?? [];
_speakerList = List.from(_historySpeakerList); _speakerList = List.from(_historySpeakerList);
@ -269,7 +280,32 @@ class _SpeakerAllBottomSheetState extends State<SpeakerAllBottomSheet> {
item['list'].length, item['list'].length,
(int idx) { (int idx) {
Map data = item['list'][idx]; Map data = item['list'][idx];
return Padding( return Obx(() {
bool isActive = false;
if (_controller.speakerAllStarttime.value ==
data['starttime'] &&
_controller.speakerAllEndtime.value ==
data['endtime']) {
isActive = true;
}
return GestureDetector(
behavior: HitTestBehavior.translucent,
onTap: () {
if (isActive) {
_controller.playerController.pausePlayer();
_controller.speakerAllStarttime.value = -1;
_controller.speakerAllEndtime.value = -1;
} else {
_controller.speakerAllStarttime.value =
data['starttime'];
_controller.speakerAllEndtime.value =
data['endtime'];
_controller.playerController
.seekTo(data['starttime']);
_controller.playerController.startPlayer();
}
},
child: Padding(
padding: EdgeInsets.symmetric(horizontal: 10.w), padding: EdgeInsets.symmetric(horizontal: 10.w),
child: Column( child: Column(
crossAxisAlignment: CrossAxisAlignment.start, crossAxisAlignment: CrossAxisAlignment.start,
@ -277,7 +313,9 @@ class _SpeakerAllBottomSheetState extends State<SpeakerAllBottomSheet> {
Row( Row(
children: [ children: [
Icon( Icon(
Icons.play_circle, isActive
? Icons.pause_circle
: Icons.play_circle,
color: Colors.red[400], color: Colors.red[400],
size: 15.w, size: 15.w,
), ),
@ -294,8 +332,8 @@ class _SpeakerAllBottomSheetState extends State<SpeakerAllBottomSheet> {
), ),
), ),
Padding( Padding(
padding: padding: EdgeInsets.symmetric(
EdgeInsets.symmetric(horizontal: 2.w), horizontal: 2.w),
child: Text( child: Text(
'-', '-',
style: TextStyle( style: TextStyle(
@ -326,20 +364,25 @@ class _SpeakerAllBottomSheetState extends State<SpeakerAllBottomSheet> {
], ],
), ),
Padding( Padding(
padding: EdgeInsets.symmetric(vertical: 8.w), padding:
EdgeInsets.symmetric(vertical: 8.w),
child: Text( child: Text(
data['content'], data['content'],
overflow: TextOverflow.ellipsis, overflow: TextOverflow.ellipsis,
maxLines: 2, maxLines: 2,
style: TextStyle( style: TextStyle(
color: Colors.grey[700], color: isActive
? Colors.red
: Colors.grey[700],
fontSize: 12.sp, fontSize: 12.sp,
), ),
), ),
), ),
], ],
), ),
),
); );
});
}, },
), ),
if (item['isOmit']) if (item['isOmit'])

1
pubspec.yaml

@ -88,6 +88,7 @@ dependencies:
amap_service: amap_service:
path: local_plugins/amap_service path: local_plugins/amap_service
dev_dependencies: dev_dependencies:
flutter_test: flutter_test:
sdk: flutter sdk: flutter

Loading…
Cancel
Save