downloadVoiceMessage method

Future<void> downloadVoiceMessage(
  1. RCIMIWMediaMessage message,
  2. bool autoPlay,
  3. BuildContext? context
)

Implementation

Future<void> downloadVoiceMessage(
    RCIMIWMediaMessage message, bool autoPlay, BuildContext? context) async {
  await engineProvider.engine?.downloadMediaMessage(message, listener:
      RCIMIWDownloadMediaMessageListener(
          onMediaMessageDownloaded: (int? code, RCIMIWMediaMessage? message) {
    if (code == 0 && message != null) {
      for (int i = 0; i < _messages.length; i++) {
        if (_messages[i].messageId == message.messageId) {
          _messages[i] = message;
          if (autoPlay && context != null && context.mounted) {
            // 下载完成后,使用AudioPlayerProvider播放
            final audioPlayerProvider =
                context.read<RCKAudioPlayerProvider>();
            audioPlayerProvider.playVoiceMessage(message, context);
          }
          notifyListeners();
          break;
        }
      }
    }
  }));
}