|
|
@ -168,6 +168,7 @@ class CallController extends GetxController { |
|
|
if (!response.data.data!.success && response.data.data!.code == 'E0002') { |
|
|
if (!response.data.data!.success && response.data.data!.code == 'E0002') { |
|
|
// 玫瑰不足,显示 toast 并弹出充值弹框 |
|
|
// 玫瑰不足,显示 toast 并弹出充值弹框 |
|
|
SmartDialog.showToast('玫瑰不足请充值'); |
|
|
SmartDialog.showToast('玫瑰不足请充值'); |
|
|
|
|
|
isCreatingChannel.value = false; |
|
|
Get.log('❌ 送礼失败: ${response.data.data}'); |
|
|
Get.log('❌ 送礼失败: ${response.data.data}'); |
|
|
// 使用 addPostFrameCallback 确保在下一帧显示弹框,避免与 toast 冲突 |
|
|
// 使用 addPostFrameCallback 确保在下一帧显示弹框,避免与 toast 冲突 |
|
|
WidgetsBinding.instance.addPostFrameCallback((_) { |
|
|
WidgetsBinding.instance.addPostFrameCallback((_) { |
|
|
@ -259,15 +260,17 @@ class CallController extends GetxController { |
|
|
type: type, |
|
|
type: type, |
|
|
toUserId: targetUserId, |
|
|
toUserId: targetUserId, |
|
|
); |
|
|
); |
|
|
_callUid = channelData?.uid; |
|
|
|
|
|
_callChannelId = channelData?.channelId; |
|
|
|
|
|
if (channelData == null) { |
|
|
|
|
|
|
|
|
if (channelData == null) { |
|
|
|
|
|
return false; |
|
|
|
|
|
} |
|
|
|
|
|
if (!channelData.success) { |
|
|
print('❌ [CallController] 创建RTC频道失败,无法发起通话'); |
|
|
print('❌ [CallController] 创建RTC频道失败,无法发起通话'); |
|
|
SmartDialog.showToast('创建通话频道失败'); |
|
|
SmartDialog.showToast('创建通话频道失败'); |
|
|
return false; |
|
|
return false; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
print('✅ [CallController] RTC频道创建成功: ${channelData.channelId}'); |
|
|
|
|
|
|
|
|
_callUid = channelData?.uid; |
|
|
|
|
|
_callChannelId = channelData?.channelId; |
|
|
|
|
|
print('✅ [CallController] RTC频道创建成功: ${channelData!.channelId}'); |
|
|
|
|
|
|
|
|
// 创建通话会话 |
|
|
// 创建通话会话 |
|
|
final session = CallSession( |
|
|
final session = CallSession( |
|
|
@ -447,6 +450,9 @@ class CallController extends GetxController { |
|
|
// 接收方接听后,立即调用一次消费接口并启动定时器 |
|
|
// 接收方接听后,立即调用一次消费接口并启动定时器 |
|
|
// 确保 _callChannelId 已设置 |
|
|
// 确保 _callChannelId 已设置 |
|
|
if (_callChannelId != null && _callChannelId!.isNotEmpty) { |
|
|
if (_callChannelId != null && _callChannelId!.isNotEmpty) { |
|
|
|
|
|
Future .delayed(Duration(seconds: 1), () async { |
|
|
|
|
|
await _consumeOneOnOneRtcChannel(); |
|
|
|
|
|
}); |
|
|
_startConsumeTimer(); |
|
|
_startConsumeTimer(); |
|
|
print('✅ [CallController] 接收方接听后已启动消费定时器'); |
|
|
print('✅ [CallController] 接收方接听后已启动消费定时器'); |
|
|
} |
|
|
} |
|
|
|