56 lines
2.7 KiB
Dart
56 lines
2.7 KiB
Dart
import 'dart:async';
|
||
|
||
import 'package:flutter/cupertino.dart';
|
||
import 'package:flutter_voice_processor/flutter_voice_processor.dart';
|
||
import 'package:get/get.dart';
|
||
import 'package:star_lock/talk/starChart/constant/talk_status.dart';
|
||
import 'package:star_lock/talk/starChart/handle/other/talk_data_repository.dart';
|
||
import 'package:star_lock/talk/starChart/proto/talk_data.pb.dart';
|
||
import 'package:star_lock/talk/starChart/status/star_chart_talk_status.dart';
|
||
import 'package:star_lock/talk/starChart/views/talkView/talk_view_state.dart';
|
||
import 'package:webview_flutter/webview_flutter.dart';
|
||
|
||
class H264WebViewState {
|
||
GlobalKey globalKey = GlobalKey();
|
||
int udpSendDataFrameNumber = 0; // 帧序号
|
||
late AnimationController animationController;
|
||
|
||
// webview 控制器
|
||
late final WebViewController webViewController;
|
||
|
||
// 获取 startChartTalkStatus 的唯一实例
|
||
final StartChartTalkStatus startChartTalkStatus =
|
||
StartChartTalkStatus.instance;
|
||
Rx<TalkStatus> talkStatus = TalkStatus.none.obs; //星图对讲状态
|
||
|
||
RxBool isShowLoading = true.obs;
|
||
|
||
Timer? oneMinuteTimeTimer; // 定时器超过60秒关闭当前界面
|
||
RxInt oneMinuteTime = 0.obs; // 定时器秒数
|
||
|
||
RxBool isLongPressing = false.obs; // 是否长按说话
|
||
final TalkDataRepository talkDataRepository = TalkDataRepository.instance;
|
||
RxInt lastFrameTimestamp = 0.obs; // 上一帧的时间戳,用来判断网络环境
|
||
Rx<NetworkStatus> networkStatus =
|
||
NetworkStatus.normal.obs; // 网络状态:0-正常 1-网络卡顿 2-网络延迟 3-网络丢包
|
||
RxInt alertCount = 0.obs; // 网络状态提示计数器
|
||
RxInt maxAlertNumber = 3.obs; // 网络状态提示最大提示次数
|
||
RxBool isOpenVoice = true.obs; // 是否打开声音
|
||
RxBool isRecordingScreen = false.obs; // 是否录屏中
|
||
RxBool isRecordingAudio = false.obs; // 是否录音中
|
||
Rx<DateTime> startRecordingAudioTime = DateTime.now().obs; // 开始录音时间
|
||
Rx<DateTime> endRecordingAudioTime = DateTime.now().obs; // 结束录音时间
|
||
RxInt recordingAudioTime = 0.obs; // 录音时间持续时间
|
||
RxDouble fps = 0.0.obs; // 添加 FPS 计数
|
||
late VoiceProcessor? voiceProcessor; // 音频处理器、录音
|
||
final int frameLength = 320; //录音视频帧长度为640
|
||
final int sampleRate = 8000; //录音频采样率为8000
|
||
List<int> recordingAudioAllFrames = <int>[]; // 录制音频的所有帧
|
||
List<int> lockRecordingAudioAllFrames = <int>[]; // 录制音频的所有帧
|
||
RxInt rotateAngle = 0.obs; // 旋转角度(以弧度为单位)
|
||
RxBool hasAudioData = false.obs; // 是否有音频数据
|
||
RxInt lastAudioTimestamp = 0.obs; // 最后接收到的音频数据的时间戳
|
||
List<TalkData> audioBuffer = <TalkData>[].obs;
|
||
RxBool isPlaying = false.obs; // 是否开始播放
|
||
}
|