createVideoMessageByURL
功能介绍
说明
需要自行存储资源时,通过api上传视频和缩略图并获取下载地址后创建视频消息。
注意
通过该api创建的消息必须通过sendMessageNotOss发送。
- iOS
- Android
- Flutter
- uni-app
- Browser/Electron/MiniProgram
- React-Native
- Unity
函数原型
Future<Message> createVideoMessageByURL({
required VideoElem videoElem,
String? operationID,
})
输入参数
参数名称 | 参数类型 | 是否必填 | 描述 |
---|---|---|---|
videoElem | VideoElem | 是 | 视频地址 |
返回结果
名称 | 类型 | 描述 |
---|---|---|
~ | Message | 成功返回 |
代码示例
Message msg = await OpenIM.iMManager.messageManager.createVideoMessageByURL(videoElem: videoElem);
//todo
函数原型
+ (OIMMessageInfo *)createVideoMessageByURL:(NSString *)fileURL
videoType:(NSString * _Nullable)videoType
duration:(NSInteger)duration
size:(NSInteger)size
snapshot:(NSString * _Nullable)snapshotURL
输入参数
参数名称 | 参数类型 | 是否必填 | 描述 |
---|---|---|---|
fileURL | NSString | 是 | 视频地址 |
videoType | NSString | 否 | 视频类型 |
duration | NSInteger | 是 | 时长 |
size | NSInteger | 是 | 时长 |
snapshotPath | NSString | 否 | 视频封面地址 |
返回结果
名称 | 类型 | 描述 |
---|---|---|
message | OIMMessageInfo | 成功返回 |
代码示例
OIMMessageInfo *message = [OIMMessageInfo createVideoMessageByURL:@"" videoType:nil duration:1 size:1024 snapshot:nil];
函数原型
public Message createVideoMessageByURL(VideoElem videoElem)
输入参数
参数名称 | 参数类型 | 是否必填 | 描述 |
---|---|---|---|
videoElem | VideoElem | 是 | 视频地址 |
返回结果
名称 | 类型 | 描述 |
---|---|---|
~ | Message | 成功返回 |
代码示例
Message Message= OpenIMClient.getInstance().messageManager. createVideoMessageByURL(videoElem)
函数原型
IMSDK.createFileMessageByURL({
videoPath: string;
duration: number;
videoType: string;
snapshotPath: string;
videoUUID: string;
videoUrl: string;
videoSize: number;
snapshotUUID: string;
snapshotSize: number;
snapshotUrl: string;
snapshotWidth: number;
snapshotHeight: number;
snapShotType: string;
}, operationID?: string): Promise<WsResponse<MessageItem>>
输入参数
参数名称 | 参数类型 | 是否必填 | 描述 | |
---|---|---|---|---|
videoPath | string | 是 | 文件路径,传空字符串即可 | |
duration | number | 是 | 视频时长 | |
videoType | string | 是 | 文件类型,一般为后缀名 | |
snapshotPath | string | 是 | 视频封面图路径,传空字符串即可 | |
videoUUID | string | 是 | 视频文件唯一 id | |
videoUrl | string | 是 | 视频下载地址,自行上传并通过sendMessageNotOss 发送时,需要传入远程 url,否则为空字符串 | |
videoSize | number | 是 | 文件大小 | |
snapshotUUID | string | 是 | 视频封面唯一 id | |
snapshotSize | number | 是 | 视频封面图大小 | |
snapshotUrl | string | 是 | 视频封面图下载地址,自行上传并通过sendMessageNotOss 发送时,需要传入远程 url,否则为空字符串 | |
snapshotWidth | number | 是 | 视频缩略图宽度 | |
snapshotHeight | number | 是 | 视频缩略图高度 | |
snapShotType | string | 是 | 视频缩略图类型,一般为后缀名 |
返回结果
参数名称 | 参数类型 | 描述 |
---|---|---|
Promise.then() | Promise<WsResponse<MessageItem>> | 调用成功回调 |
Promise.catch() | Promise<WsResponse> | 调用失败回调 |
代码示例
import { getSDK } from '@openim/wasm-client-sdk';
const IMSDK = getSDK();
// use in electron with ffi
// import { getWithRenderProcess } from '@openim/electron-client-sdk/lib/render';
// const { instance: IMSDK } = getWithRenderProcess();
// use in mini program
// import { getSDK } from '@openim/client-sdk';
// const IMSDK = getSDK();
IMSDK.createFileMessageByURL({
videoPath: '',
duration: 6,
videoType: 'mp4',
snapshotPath: '',
videoUUID: '',
videoUrl: '',
videoSize: 1024,
snapshotUUID: '',
snapshotSize: 1024,
snapshotUrl: '',
snapshotWidth: 1024,
snapshotHeight: 1024,
snapShotType: 'png',
})
.then(({ data }) => {
// 调用成功
})
.catch(({ errCode, errMsg }) => {
// 调用失败
});
函数原型
IMSDK.asyncApi('createVideoMessageByURL', operationID: string, {
videoPath: string;
duration: number;
videoType: string;
snapshotPath: string;
videoUUID: string;
videoUrl: string;
videoSize: number;
snapshotUUID: string;
snapshotSize: number;
snapshotUrl: string;
snapshotWidth: number;
snapshotHeight: number;
snapShotType: string;
}): Promise<MessageItem>
输入参数
参数名称 | 参数类型 | 是否必填 | 描述 | |
---|---|---|---|---|
operationID | string | 是 | 操作 ID,用于定位问题,保持唯一,建议用当前时间和随机数 | |
videoPath | string | 是 | 文件路径,传空字符串即可 | |
duration | number | 是 | 视频时长 | |
videoType | string | 是 | 文件类型,一般为后缀名 | |
snapshotPath | string | 是 | 视频封面图路径,传空字符串即可 | |
videoUUID | string | 是 | 视频文件唯一 id | |
videoUrl | string | 是 | 视频下载地址,自行上传并通过sendMessageNotOss 发送时,需要传入远程 url,否则为空字符串 | |
videoSize | number | 是 | 文件大小 | |
snapshotUUID | string | 是 | 视频封面唯一 id | |
snapshotSize | number | 是 | 视频封面图大小 | |
snapshotUrl | string | 是 | 视频封面图下载地址,自行上传并通过sendMessageNotOss 发送时,需要传入远程 url,否则为空字符串 | |
snapshotWidth | number | 是 | 视频缩略图宽度 | |
snapshotHeight | number | 是 | 视频缩略图高度 | |
snapShotType | string | 是 | 视频缩略图类型,一般为后缀名 |
返回结果
通过
openim-uniapp-polyfill
包将函数 Promise 化,调用时需要使用then
和catch
判断并处理成功和失败回调。
参数名称 | 参数类型 | 描述 |
---|---|---|
Promise.then() | Promise<MessageItem> | 调用成功回调 |
Promise.catch() | Promise<CatchResponse> | 调用失败回调 |
代码示例
import IMSDK from 'openim-uniapp-polyfill';
IMSDK.asyncApi('createVideoMessageByURL', IMSDK.uuid(), {
videoPath: '',
duration: 6,
videoType: 'mp4',
snapshotPath: '',
videoUUID: '',
videoUrl: '',
videoSize: 1024,
snapshotUUID: '',
snapshotSize: 1024,
snapshotUrl: '',
snapshotWidth: 1024,
snapshotHeight: 1024,
snapShotType: 'png',
})
.then((data) => {
// 调用成功
})
.catch(({ errCode, errMsg }) => {
// 调用失败
});
函数原型
OpenIMSDKRN.createVideoMessageByURL({
videoPath: string,
duration: number,
videoType: string,
snapshotPath: string,
videoUUID: string,
videoUrl: string,
videoSize: number,
snapshotUUID: string,
snapshotSize: number,
snapshotUrl: string,
snapshotWidth: number,
snapshotHeight: number,
snapShotType: string,
}, operationID: string): Promise<MessageItem>
输入参数
参数名称 | 参数类型 | 是否必填 | 描述 | |
---|---|---|---|---|
videoPath | string | 是 | 文件路径,传空字符串即可 | |
duration | number | 是 | 视频时长 | |
videoType | string | 是 | 文件类型,一般为后缀名 | |
snapshotPath | string | 是 | 视频缩略图,可以是空字符串 | 视频封面图路径,传空字符串即可 |
videoUUID | string | 是 | 视频文件唯一 id | |
videoUrl | string | 是 | 视频下载地址,自行上传并通过sendMessageNotOss 发送时,需要传入远程 url,否则为空字符串 | |
videoSize | number | 是 | 文件大小 | |
snapshotUUID | string | 是 | 视频封面唯一 id | |
snapshotSize | number | 是 | 视频封面图大小 | |
snapshotUrl | string | 是 | 视频封面图下载地址,自行上传并通过sendMessageNotOss 发送时,需要传入远程 url,否则为空字符串 | |
snapshotWidth | number | 是 | 视频缩略图宽度 | |
snapshotHeight | number | 是 | 视频缩略图高度 | |
snapShotType | string | 是 | 视频缩略图类型,一般为后缀名 | |
operationID | string | 是 | 操作 ID,用于定位问题,保持唯一,建议用当前时间和随机数 |
返回结果
参数名称 | 参数类型 | 描述 |
---|---|---|
Promise.then() | Promise<MessageItem> | 调用成功回调 |
Promise.catch() | Promise<CatchResponse> | 调用失败回调 |
代码示例
import OpenIMSDKRN from "open-im-sdk-rn";
OpenIMSDKRN.createVideoMessageByURL({
videoPath: '',
duration: 6,
videoType: 'mp4',
snapshotPath: '',
videoUUID: '',
videoUrl: '',
videoSize: 1024,
snapshotUUID: '',
snapshotSize: 1024,
snapshotUrl: '',
snapshotWidth: 1024,
snapshotHeight: 1024,
snapShotType: 'png',
}, 'operationID')
.then((data) => {
// 调用成功
})
.catch(({ errCode, errMsg }) => {
// 调用失败
});