import 'dart:async'; import 'package:star_lock/talk/starChart/proto/talk_data.pb.dart'; class TalkDataRepository { TalkDataRepository._() { _talkDataStreamController = StreamController.broadcast( onListen: () { _isListening = true; }, onCancel: () { _isListening = false; }, sync: false, // 改为同步模式以提高实时性 ); } static final TalkDataRepository _instance = TalkDataRepository._(); static TalkDataRepository get instance => _instance; late final StreamController _talkDataStreamController; bool _isListening = false; // 直接返回原始流,不做转换 Stream get talkDataStream => _talkDataStreamController.stream; void addTalkData(TalkData talkData) { if (_isListening) { _talkDataStreamController.add(talkData); } } void dispose() { _talkDataStreamController.close(); } }