sendMediaMessage method

dynamic sendMediaMessage({
  1. required String path,
  2. required String messageType,
  3. Map<String, dynamic>? metadata,
})

Implementation

sendMediaMessage(
    {required String path,
    required String messageType,
    Map<String, dynamic>? metadata}) async {
  String muid = DateTime.now().microsecondsSinceEpoch.toString();

  MediaMessage mediaMessage = MediaMessage(
    receiverType: receiverType,
    type: messageType,
    receiverUid: receiverID,
    file: path,
    metadata: metadata,
    sender: loggedInUser,
    parentMessageId: parentMessageId,
    muid: muid,
    category: CometChatMessageCategory.message,
  );

  CometChatMessageEvents.ccMessageSent(
      mediaMessage, MessageStatus.inProgress);

  //for sending files
  MediaMessage mediaMessage2 = MediaMessage(
    receiverType: receiverType,
    type: messageType,
    receiverUid: receiverID,
    //file: Platform.isIOS ? 'file://${pickedFile.path}' : pickedFile.path,

    file: (Platform.isIOS && (!path.startsWith('file://')))
        ? 'file://$path'
        : path,
    metadata: metadata,
    sender: loggedInUser,
    parentMessageId: parentMessageId,
    muid: muid,
    category: CometChatMessageCategory.message,
  );

  if (textEditingController != null && textEditingController!.text.isNotEmpty) {
    textEditingController?.clear();
    _previousText = '';
    update();
  }

  await CometChat.sendMediaMessage(mediaMessage2,
      onSuccess: (MediaMessage message) async {
    debugPrint("Media message sent successfully: ${mediaMessage.muid}");

    if (Platform.isIOS) {
      if (message.file != null) {
        message.file = message.file?.replaceAll("file://", '');
      }
    } else {
      message.file = path;
    }

    _playSound();

    CometChatMessageEvents.ccMessageSent(message, MessageStatus.sent);
  },
      onError: onError ??
          (e) {
            if (mediaMessage.metadata != null) {
              mediaMessage.metadata!["error"] = e;
            } else {
              mediaMessage.metadata = {"error": e};
            }
            CometChatMessageEvents.ccMessageSent(
                mediaMessage, MessageStatus.error);
            debugPrint(
                "Media message sending failed with exception: ${e.message}");
          });
}