app-starlock/lib/talk/starChart/webView/h264_web_view_state.dart

56 lines
2.7 KiB
Dart
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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; // 是否开始播放
}