sendMediaMessage method
dynamic
sendMediaMessage({})
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}");
});
}