Jolie
|
832dc1a21d
|
feat(call): 添加RTC通话消费响应处理和玫瑰余额显示
- 引入ConsumeRtcChannelResponse模型用于处理消费响应数据
- 在CallController中添加consumeResponse响应变量存储消费信息
- 移除延迟调用消费接口改为直接启动定时器
- 实现消费响应数据更新和状态检查逻辑
- 添加status为3时自动挂断通话的功能
- 实现免费通话检测和定时器停止机制
- 在视频通话页面显示玫瑰剩余数量和每分钟价格信息
- 优化通话界面UI布局添加余额显示组件
|
2 months ago |
王子贤
|
77dabb01b3
|
合并代码
|
2 months ago |
Jolie
|
3f43ecb8c1
|
fix(call): 修复通话功能中的错误处理和价格显示问题
- 在送礼失败时重置 isCreatingChannel 状态避免状态不一致
- 修复创建RTC频道失败时的返回值处理,添加 channelData 为 null 的检查
- 修复通话频道创建成功时的空指针访问问题
- 延迟1秒调用 _consumeOneOnOneRtcChannel 方法确保会话正确建立
- 修复免费产品价格显示为空字符串的格式化逻辑
- 优化通话类型选择对话框的价格显示,免费产品不显示价格信息
|
2 months ago |
Jolie
|
ed6dfdc5db
|
feat(call): 添加RTC通话消费定时器和表情输入框功能
- 在API URL中添加consumeOneOnOneRtcChannel接口地址
- 在CallController中实现消费定时器,每分钟调用一次消费接口
- 添加_startConsumeTimer、_stopConsumeTimer和_consumeOneOnOneRtcChannel方法
- 在通话接通和结束时启动和停止消费定时器
- 将聊天输入框替换为ExtendedTextField以支持表情显示
- 实现EmojiSpecialTextSpanBuilder和EmojiTextInputFormatter处理表情输入
- 在pubspec.yaml中添加extended_text_field依赖
- 在RTC API中添加consumeOneOnOneRtcChannel接口定义
|
2 months ago |
Jolie
|
b2c2aa9c11
|
fix(call): 修复通话状态处理逻辑并更新直播间界面显示
- 重构通话状态处理逻辑,将 cancelled 和 terminated 状态提前处理
- 添加 channelId 验证机制,避免不同频道的通话状态冲突
- 修复通话小窗口在通话取消时未正确关闭的问题
- 更新直播间连麦提示文本,根据卡片价格动态显示价格
- 修改直播间连麦按钮文本,根据用户性别显示不同文案
|
2 months ago |
Jolie
|
87c11464ad
|
feat(call): 添加通话权限检查和玫瑰不足处理
- 在创建RTC频道时添加麦克风和摄像头权限检查
- 实现语音通话需要麦克风权限,视频通话需要摄像头和麦克风权限
- 添加toUserId参数到createOneOnOneRtcChannel方法
- 处理玫瑰不足情况(E0002错误码)并显示充值弹框
- 修复音频通话类型参数错误(2为视频,3为音频)
- 在RtcChannelData模型中添加success和code字段
- 添加权限被永久拒绝时跳转系统设置功能
|
2 months ago |
Jolie
|
8bc1e7504d
|
refactor(call): 优化通话控制器代码结构
- 添加 Flutter Cupertino 和 Material 组件库导入
- 导入直播充值弹窗组件
- 简化创建一对一 RTC 频道后的代码格式
|
2 months ago |
Jolie
|
b57a3757fc
|
feat(call): 添加聊天音频产品功能
- 新增聊天音频产品API接口和模型定义
- 实现获取聊天音频产品列表功能
- 在通话类型选择对话框中显示动态价格信息
- 优化通话时长显示逻辑
- 更新视频通话回调为异步处理方式
|
2 months ago |
Jolie
|
c55bd32478
|
fix(call): 解决通话与直播功能冲突问题
- 在CallController单例获取逻辑中添加GetX注册检查,确保实例正确获取
- 添加直播间状态检查,防止在直播间内发起或接听通话
- 修改通话状态为waitCalling,优化通话流程状态管理
- 在通话结束逻辑中添加异常处理,确保RTC频道正确清理
- 在RoomController中添加通话状态检查,防止通话期间开始直播或加入直播间
- 修复VideoCallPage挂断通话后页面重复退出问题
- 优化RTCManager中直播频道详情获取逻辑的缩进格式
|
2 months ago |
Jolie
|
bd63283ab9
|
fix(call): 修复通话冲突处理逻辑
- 修正了通话中提示文案,从"已有通话正在进行中"改为"当前正在通话中"
- 移除了通话记录中未接听状态的显示
- 修改了通话邀请的默认显示文案,明确标识为"我刚刚邀请你视频通话"或"我刚刚邀请你语音通话"
- 在IM管理器中添加了通话冲突检测机制,当有通话正在进行时自动拒绝新通话邀请
- 添加了自动拒绝新通话的日志记录功能
- 优化了通话邀请弹框的触发逻辑,避免重复弹出
|
2 months ago |
Jolie
|
0a7d02adc3
|
refactor(call): 移除RTM消息处理改为使用onMessageContentChanged
- 移除RTMManager相关依赖和消息监听器注册
- 移除RTM频道订阅和取消订阅逻辑
- 移除RTM消息发送(accept、reject、hangup)相关代码
- 添加handleCallStatusChange方法处理通话状态变化
- 修改接听通话逻辑改为通过onMessageContentChanged接收通知
- 更新RTCManager中CallController实例获取方式
- 优化代码结构和错误处理机制
|
2 months ago |
Jolie
|
44086ca308
|
fix(call): 解决通话结束后界面未正确关闭的问题
- 关闭视频通话邀请弹框(如果正在显示)
- 关闭通话小窗口
- 退出 VideoCallPage(如果当前在 VideoCallPage)
- 添加调试日志输出以便追踪关闭状态
|
2 months ago |
Jolie
|
93a1770a51
|
fix(call): 修复通话类型参数映射错误
- 修正了类型验证逻辑,将有效类型从 1/2 调整为 2/3
- 更新了通话类型映射,音频类型从 1 改为 2,视频类型从 2 改为 3
- 调整了 RTC 频道创建时的类型参数传递逻辑
|
2 months ago |
Jolie
|
86953b2deb
|
feat(rtc): 添加一对一RTC频道连接和终止功能
- 在api_urls.dart中新增connectOneOnOneRtcChannel和terminateOneOnOneRtcChannel接口常量
- 在rtc_api.dart中添加connectOneOnOneRtcChannel和terminateOneOnOneRtcChannel接口定义
- 在call_controller.dart的通话建立时调用connectOneOnOneRtcChannel接口
- 在call_controller.dart的通话结束时根据通话状态调用terminateOneOnOneRtcChannel接口
- 更新live_room_action_bar.dart中的充值按钮样式为文本按钮
- 修改live_room_pay_item.dart中价格显示格式,去掉小数点后数字
|
3 months ago |
Jolie
|
520f9ab8f1
|
feat(call): 添加通话超时计时器功能
- 实现30秒超时计时器,自动取消未接听的通话
- 在发起通话时启动超时计时器
- 在对方接听、拒绝或挂断时停止超时计时器
- 添加_startCallTimeoutTimer和_stopCallTimeoutTimer方法
- 在通话结束和控制器关闭时清理超时计时器
- 优化通话流程中的计时器管理逻辑
|
3 months ago |
Jolie
|
b6e2d5b8de
|
feat(call): 实现通话拒绝功能和优化消息处理
- 将 _handleRtmMessage 方法改为异步方法以支持异步操作
- 添加对 reject 消息的处理逻辑,包括取消频道订阅和关闭通话界面
- 实现拒绝通话时调用RTC接口并发送拒绝消息到RTM频道
- 优化 channelId 验证逻辑,避免空值导致的错误
- 添加通话拒绝时的音频停止和会话清理功能
|
3 months ago |
Jolie
|
5977d99462
|
fix(call): 修复通话挂断和邀请弹框处理逻辑
- 在收到hangup消息时取消频道订阅并关闭视频通话邀请弹框
- 修复通话发起时频道ID和UID的赋值时机问题
- 移除已废弃的取消通话相关代码
- 在挂断通话时根据发起方身份调用相应的取消接口
- 优化挂断消息处理逻辑,确保弹框正确关闭和音频停止
- 在IM管理器中添加频道订阅逻辑,完善通话邀请处理
- 修复接收方收到挂断消息时的弹框关闭和音频停止逻辑
|
3 months ago |
Jolie
|
20938d7421
|
feat(call): 添加RTC通话拒绝和取消功能并优化通话时长计时
- 添加refuseOneOnOneRtcChannel和cancelOneOnOneRtcChannel API接口
- 实现发起方收到accept消息后自动启动通话计时器
- 优化VideoCallPage中的响应式变量监听和UI状态判断
- 移除未使用的IMManager导入
- 更新通话状态显示逻辑,区分呼叫中和已接通状态
|
3 months ago |
Jolie
|
b1cb74f23c
|
refactor(call): 重构通话功能实现并优化视频通话页面
- 修正音频和视频通话类型参数,音频改为type:2,视频改为type:3
- 在通话信息中添加uid字段并传递给通话控制器
- 移除通话状态更新相关代码,不再修改消息状态
- 从IMManager中移除modifyMessage方法实现
- 重构视频通话页面背景构建逻辑,优化远端用户UID监听机制
- 添加key确保remoteUid变化时视频视图正确重建
|
3 months ago |
Jolie
|
b8ff22ab5e
|
feat(call): 添加通话挂断消息处理和频道管理功能
- 添加 RTM 消息监听器处理挂断事件
- 实现 _handleHangupMessage 方法处理对方挂断逻辑
- 添加 _callChannelId 和 _callUid 成员变量管理通话频道信息
- 在发起和接听通话时清空之前的通话信息
- 在挂断通话时发送 RTM 挂断消息并取消订阅频道
- 在结束通话时清理保存的 channelId 和 uid
- 添加 OverlayController 依赖用于关闭通话小窗口
- 优化代码格式和打印日志的换行处理
|
3 months ago |
Jolie
|
35ef3c2c1d
|
feat(call): 集成 RTM 消息处理通话事件
- 添加 dart:typed_data 和 agora_rtm 依赖包
- 实现 RTM 消息监听器注册功能
- 添加处理通话相关 RTM 消息的逻辑
- 支持接收和解析通话接受消息更新远端用户 UID
- 简化发送通话消息的逻辑并移除旧的 IMManager 方式
|
3 months ago |
Jolie
|
ecc8a5ee3c
|
refactor(call): 重构通话控制器并集成RTM功能
- 移除所有try-catch异常处理块,简化代码逻辑
- 添加RTMManager导入并实现RTM频道订阅功能
- 在加入RTC频道后自动订阅对应的RTM频道
- 通过RTM消息传递通话接受事件和用户UID信息
- 优化通话音频播放逻辑,移除循环播放异常处理
- 简化通话创建、接听、拒绝、取消和结束流程
- 在视频通话页面移除用户信息加载的异常处理
- 改进通话状态管理和错误处理机制
|
3 months ago |
Jolie
|
656f9d81cb
|
feat(video-call): 实现通话控制功能和界面优化
- 添加麦克风静音和扬声器开关状态管理
- 实现toggleMic和toggleSpeaker方法控制音频设备
- 添加hangUpCall方法处理挂断通话逻辑
- 优化视频通话页面控制按钮显示逻辑
- 实现通话接通后5秒自动隐藏控制按钮功能
- 添加点击屏幕切换控制按钮显示/隐藏功能
- 重构通话状态管理使用响应式变量
- 更新RTCManager添加扬声器控制接口
|
3 months ago |
Jolie
|
9ab0dc65c5
|
feat(call): 添加远端用户UID管理和视频通话页面优化
- 在CallController中添加remoteUid用于跟踪远端用户
- 在通话开始和结束时清空远端用户UID状态
- 修改IMManager中通话状态判断逻辑,支持waitCalling状态
- 在RTCManager中集成CallController的remoteUid更新机制
- 重构VideoCallPage使用Obx监听远端用户变化
- 实现远端视频视图显示和本地视频视图切换逻辑
- 添加视频通话中的调试日志输出
|
3 months ago |
Jolie
|
0297aec6c9
|
feat(call): 实现通话接听和RTC频道加入功能
- 集成permission_handler处理摄像头和麦克风权限
- 实现根据通话类型设置视频状态(语音通话关闭摄像头,视频通话开启摄像头)
- 添加channelId验证和RTC频道加入逻辑
- 实现joinChannel和_joinRtcChannel方法处理RTC连接
- 添加权限检查和设置功能
- 优化VideoCallPage中通话消息处理逻辑
- 修复通话接听和拒绝时的消息传递问题
|
3 months ago |
Jolie
|
3b5879284f
|
feat(call): 添加频道ID支持并更新通话状态
- 在通话控制器中将初始状态从'missed'更改为'waitCalling'
- 在IM管理器中添加channelId字段解析和传递
- 在视频通话邀请对话框中添加channelId参数
- 在视频通话页面中添加channelId参数支持
- 更新通话消息发送时包含频道ID信息
|
3 months ago |
Jolie
|
476ef2f848
|
feat(call): 实现通话功能集成声网SDK和通话控制
- 集成 agora_rtc_engine 依赖并实现 RTCManager 管理音视频通话
- 添加 RTCType 枚举区分通话和直播类型,实现类型化频道管理
- 在 CallController 中实现语音/视频通话的摄像头状态控制逻辑
- 实现通话中加入 RTC 频道的真实通话功能,支持语音和视频通话
- 在 VideoCallPage 中添加本地视频视图显示和通话状态控制界面
- 实现通话页面的接听/拒绝按钮和通话邀请状态显示功能
- 添加通话消息查找和处理机制,支持通话邀请的接收和响应
|
3 months ago |
Jolie
|
a4118ffba1
|
feat(call): 将通话管理功能从CallManager迁移到CallController
- 实现语音和视频通话的发起、接听、拒绝、取消和结束功能
- 添加通话状态管理包括等待接通、通话中、未接听、已取消和已拒绝
- 集成音频播放器实现来电铃声的循环播放功能
- 实现通话计时器功能记录通话时长
- 完成通话消息的发送和状态更新机制
- 迁移通话相关枚举和数据模型到CallController
- 更新聊天页面和IM管理器使用新的CallController实例
- 移除独立的CallManager文件并整合到CallController中
|
3 months ago |
Jolie
|
a4d06f8435
|
feat(rtc): 添加一对一RTC频道功能
- 在api_urls.dart中新增createOneOnOneRtcChannel API路径
- 创建新的CallController用于管理通话相关逻辑
- 实现createOneOnOneRtcChannel方法支持音频视频通话
- 将call_manager.dart从message目录移动到rtc目录
- 在CallManager中集成RTC频道创建流程
- 更新通话消息发送逻辑包含频道ID信息
- 调整相关页面和组件的导入路径以适配目录变更
- 修复user_api.g.dart中的API路径格式问题
|
3 months ago |