自习室优化ok

This commit is contained in:
zhutao
2025-11-28 13:31:23 +08:00
parent 4ecb0c35d6
commit 57305c5804
57 changed files with 2500 additions and 597 deletions

View File

@@ -2,6 +2,7 @@ import 'package:agora_rtc_engine/agora_rtc_engine.dart';
import 'package:app/pages/teacher/room/viewmodel/type.dart';
import 'package:app/request/dto/room/room_user_dto.dart';
import 'package:app/widgets/room/file_drawer.dart';
import 'package:app/widgets/room/other_widget.dart';
import 'package:app/widgets/room/video_surface.dart';
import 'package:flutter/material.dart';
import 'package:provider/provider.dart';
@@ -26,7 +27,11 @@ class StudentItem extends StatefulWidget {
class _StudentItemState extends State<StudentItem> {
///打开文件列表
void _openFileList() {
showFileDialog(context, isUpload: false);
showFileDialog(
context,
isUpload: false,
files: widget.user.filesList,
);
}
@override
@@ -40,7 +45,6 @@ class _StudentItemState extends State<StudentItem> {
///声音是否开启
bool isSpeakerOpen = widget.user.speekerStatus == 1;
return ClipRRect(
borderRadius: BorderRadius.circular(10),
child: Container(
@@ -51,15 +55,18 @@ class _StudentItemState extends State<StudentItem> {
child: SizedBox(
width: double.infinity,
child: Stack(
alignment: Alignment.bottomCenter,
children: [
if (widget.engine != null)
AgoraVideoView(
controller: VideoViewController(
rtcEngine: widget.engine!,
canvas: VideoCanvas(uid: widget.user.rtcUid),
VideoSurface(
user: widget.user,
child: AgoraVideoView(
controller: VideoViewController(
rtcEngine: widget.engine!,
canvas: VideoCanvas(uid: widget.user.rtcUid),
),
),
),
// VideoSurface(),
Positioned(
bottom: 0,
left: 0,
@@ -79,6 +86,8 @@ class _StudentItemState extends State<StudentItem> {
),
),
),
///右上角选中
if (widget.user.userId != vm.activeSId)
Positioned(
right: 5,
@@ -99,6 +108,17 @@ class _StudentItemState extends State<StudentItem> {
),
),
),
///举手
if (widget.user.handup == 1)
Positioned(
bottom: 40,
child: HandRaiseButton(
onTap: () {
vm.clearHandUp(widget.user.userId);
},
),
),
],
),
),
@@ -106,6 +126,7 @@ class _StudentItemState extends State<StudentItem> {
ColoredBox(
color: Color(0xFF232426),
child: Row(
spacing: 1,
children: [
_actionItem(
icon: isCameraOpen ? RemixIcons.video_on_fill : RemixIcons.video_off_fill,