存储服务
更新时间: 2024/05/11 15:09:08
NetEase IM SDK(以下简称 NIM SDK)提供存储服务,支持添加、查询自定义存储场景和文件上传。
本文介绍存储服务相关 API。
支持平台
Android | iOS | macOS/Windows | Web/uni-app/小程序 | Harmony |
---|---|---|---|---|
✓ | ✓ | ✓ | ✓ | ✓ |
API 概览
API | 描述 | 起始版本 |
---|---|---|
addCustomStorageScene | 添加自定义存储场景 | v10.2.0(对应 Harmony v0.5.0) |
getStorageSceneList | 获取存储场景列表 | v10.2.0(对应 Harmony v0.5.0) |
createUploadFileTask | 创建文件上传任务 | v10.2.0(对应 Harmony v0.5.0) |
uploadFile | 上传文件 | v10.2.0(对应 Harmony v0.5.0) |
cancelUploadFile | 取消文件上传 | v10.2.0(对应 Harmony v0.5.0) |
downloadFile | 下载文件(仅移动端) | v10.2.3 |
shortUrlToLong | 短链接转长链接 | v10.2.3 |
imageThumbUrl | 生成图片缩略图链接(仅Android&iOS&Web) | v10.2.6 |
videoCoverUrl | 生成视频封面图链接(仅Android&iOS&Web) | v10.2.6 |
接口类
V2NIMStorageService
类提供存储服务相关接口。
addCustomStorageScene
接口描述
添加自定义存储场景。
该方法为同步。
参数说明
Android
javaV2NIMStorageScene addCustomStorageScene(String sceneName, long expireTime);
参数名称 | 类型 | 是否必填 | 默认值 | 描述 |
---|---|---|---|---|
sceneName |
String | 是 | - | 自定义场景名 |
expireTime |
long | 是 | - | 过期时间(秒),0 表示永不过期。 |
iOS
objective-c- (void)addCustomStorageScene:(NSString *)sceneName expireTime:(NSUInteger)expireTime;
参数名称 | 类型 | 是否必填 | 默认值 | 描述 |
---|---|---|---|---|
sceneName |
NSString * | 是 | - | 自定义场景名 |
expireTime |
NSUInteger | 是 | - | 过期时间(秒),0 表示永不过期。 |
macOS/Windows
cppvirtual void addCustomStorageScene(nstd::string sceneName, uint64_t expireTime) = 0;
参数名称 | 类型 | 是否必填 | 默认值 | 描述 |
---|---|---|---|---|
sceneName |
nstd::string | 是 | - | 自定义场景名 |
expireTime |
uint64_t | 是 | - | 过期时间(秒),0 表示永不过期。 |
Web/uni-app/小程序
typescriptaddCustomStorageScene(sceneName: string, expireTime: number): V2NIMStorageScene
参数名称 | 类型 | 是否必填 | 默认值 | 描述 |
---|---|---|---|---|
sceneName |
string | 是 | - | 自定义场景名 |
expireTime |
number | 是 | - | 过期时间(秒),0 表示永不过期。 |
Harmony
typescriptaddCustomStorageScene(sceneName: string, expireTime: number): V2NIMStorageScen
参数名称 | 类型 | 是否必填 | 默认值 | 描述 |
---|---|---|---|---|
sceneName |
string | 是 | - | 自定义场景名 |
expireTime |
number | 是 | - | 过期时间(秒),0 表示永不过期。 |
示例代码
Android
javaV2NIMStorageService v2StorageService = NIMClient.getService(V2NIMStorageService.class);
v2StorageService.addCustomStorageScene(sceneName, expireTime);
iOS
objective-c[[[NIMSDK sharedSDK] v2StorageService] addCustomStorageScene:@"scene_name" expireTime:1000];
macOS/Windows
cppstorageService.addCustomStorageScene("customScene", 0); // never expire
Web/uni-app/小程序
typescriptnim.V2NIMStorageService.addCustomStorageScene("nim", 86400)
Harmony
typescriptnim.storageService.addCustomStorageScene("nim", 86400)
返回值
Android/Web/Harmony
iOS/macOS/Windows
无
相关回调
无
getStorageSceneList
接口描述
获取存储场景列表。
该方法为同步。
参数说明
Android
javaList<V2NIMStorageScene> getStorageSceneList();
iOS
objective-c- (NSArray<V2NIMStorageScene *> *)getStorageSceneList;
macOS/Windows
cppvirtual nstd::vector<V2NIMStorageScene> getStorageSceneList() = 0;
Web/uni-app/小程序
typescriptgetStorageSceneList(): V2NIMStorageScene[]
Harmony
typescriptgetStorageSceneList(): V2NIMStorageScene[]
示例代码
Android
javaV2NIMStorageService v2StorageService = NIMClient.getService(V2NIMStorageService.class);
List<V2NIMStorageScene> storageSceneList = v2StorageService.getStorageSceneList();
iOS
objective-c[[[NIMSDK sharedSDK] v2StorageService] getStorageSceneList];
macOS/Windows
cppauto sceneList = storageService.getStorageSceneList();
Web/uni-app/小程序
typescriptconst sceneList = nim.V2NIMStorageService.getStorageSceneList()
Harmony
typescriptconst sceneList = nim.storageService.getStorageSceneList()
返回值
相关回调
无
createUploadFileTask
接口描述
创建文件上传任务。
该方法为同步。
参数说明
Android
javaV2NIMUploadFileTask createUploadFileTask(V2NIMUploadFileParams params);
参数名称 | 类型 | 是否必填 | 默认值 | 描述 |
---|---|---|---|---|
params |
V2NIMUploadFileParams |
是 | - | 文件上传参数 |
iOS
objective-c- (V2NIMUploadFileTask *)createUploadFileTask:(V2NIMUploadFileParams *)fileParams;
参数名称 | 类型 | 是否必填 | 默认值 | 描述 |
---|---|---|---|---|
params |
V2NIMUploadFileParams * |
是 | - | 文件上传参数 |
macOS/Windows
cppvirtual V2NIMUploadFileTask createUploadFileTask(V2NIMUploadFileParams fileParams) = 0;
参数名称 | 类型 | 是否必填 | 默认值 | 描述 |
---|---|---|---|---|
params |
V2NIMUploadFileParams |
是 | - | 文件上传参数 |
Web/uni-app/小程序
typescriptcreateUploadFileTask(fileParams: V2NIMUploadFileParams): V2NIMUploadFileTask
参数名称 | 类型 | 是否必填 | 默认值 | 描述 |
---|---|---|---|---|
fileParams |
V2NIMUploadFileParams |
是 | - | 文件上传参数 |
Harmony
typescriptcreateUploadFileTask(fileParams: V2NIMUploadFileParams): V2NIMUploadFileTask
参数名称 | 类型 | 是否必填 | 默认值 | 描述 |
---|---|---|---|---|
fileParams |
V2NIMUploadFileParams |
是 | - | 文件上传参数 |
示例代码
Android
javaV2NIMStorageService v2StorageService = NIMClient.getService(V2NIMStorageService.class);
V2NIMUploadFileParams params = new V2NIMUploadFileParams("filePath")
V2NIMUploadFileTask uploadFileTask = v2StorageService.createUploadFileTask(params);
iOS
objective-cV2NIMUploadFileParams *fileParams = [[V2NIMUploadFileParams alloc] init];
fileParams.filePath = @"filePath";
[[[NIMSDK sharedSDK] v2StorageService] createUploadFileTask:fileParams];
macOS/Windows
cppV2NIMUploadFileParams fileParams;
fileParams.filePath = "~/test.txt";
fileParams.name = "hello.txt";
fileParams.scene = "customScene";
auto uploadTask = storageService.createUploadFileTask(fileParams);
Web/uni-app/小程序
typescriptconst task = nim.V2NIMStorageService.createUploadFileTask({
fileObj: document.getElementById('input-id').files[0]
}})
Harmony
typescriptconst params:V2NIMUploadFileParams = {
filePath: '文件沙盒路径',
sceneName: '场景名'
} as V2NIMUploadFileParams
const task = nim.storageService.createUploadFileTask(params)
返回值
相关回调
无
uploadFile
接口描述
上传文件。
参数说明
Android
javavoid uploadFile(V2NIMUploadFileTask fileTask, V2NIMSuccessCallback<String> success,
V2NIMFailureCallback failure,
V2NIMProgressCallback progress);
参数名称 | 类型 | 是否必填 | 默认值 | 描述 |
---|---|---|---|---|
fileTask |
V2NIMUploadFileTask |
是 | - | 文件上传任务对象 |
success |
V2NIMSuccessCallback |
是 | - | 上传成功回调,返回文件 URL 地址。 |
failure |
V2NIMFailureCallback |
是 | - | 上传失败回调,返回错误码。 |
progress |
V2NIMProgressCallback |
否 | null | 文件上传进度回调 |
iOS
objective-c- (void)uploadFile:(V2NIMUploadFileTask *)fileTask
success:(V2NIMFileUploadSuccess)success
failure:(V2NIMFileUploadFailure)failure
progress:(V2NIMFileUploadProgress)progress;
参数名称 | 类型 | 是否必填 | 默认值 | 描述 |
---|---|---|---|---|
fileTask |
V2NIMUploadFileTask * |
是 | - | 文件上传任务对象 |
success |
V2NIMFileUploadSuccess |
是 | - | 上传成功回调,可自定义设置。 |
failure |
V2NIMFileUploadFailure |
是 | - | 上传失败回调,可自定义设置。 |
progress |
V2NIMProgressCallback |
否 | null | 文件上传进度回调 |
macOS/Windows
cppvirtual void uploadFile(V2NIMUploadFileTask fileTask,
V2NIMSuccessCallback<nstd::string> success,
V2NIMFailureCallback failure,
V2NIMProgressCallback progress) = 0;
参数名称 | 类型 | 是否必填 | 默认值 | 描述 |
---|---|---|---|---|
fileTask |
V2NIMUploadFileTask |
是 | - | 文件上传任务对象 |
success |
V2NIMSuccessCallback |
是 | - | 上传成功回调,返回文件 URL 地址。 |
failure |
V2NIMFailureCallback |
是 | - | 上传失败回调,返回错误码。 |
progress |
V2NIMProgressCallback |
否 | null | 文件上传进度回调 |
Web/uni-app/小程序
typescriptuploadFile(fileTask: V2NIMUploadFileTask, progress: V2NIMProgressCallback): Promise<string>
参数名称 | 类型 | 是否必填 | 默认值 | 描述 |
---|---|---|---|---|
fileTask |
V2NIMUploadFileTask |
是 | - | 文件上传任务对象 |
progress |
V2NIMProgressCallback |
否 | null | 文件上传进度回调 |
Harmony
typescriptuploadFile(fileTask: V2NIMUploadFileTask, progress: V2NIMProgressCallback): Promise<string>
参数名称 | 类型 | 是否必填 | 默认值 | 描述 |
---|---|---|---|---|
fileTask |
V2NIMUploadFileTask |
是 | - | 文件上传任务对象 |
progress |
V2NIMProgressCallback |
否 | null | 文件上传进度回调 |
示例代码
Android
javaV2NIMStorageService v2StorageService = NIMClient.getService(V2NIMStorageService.class);
v2StorageService.uploadFile(task, (V2NIMSuccessCallback<String>) s -> {
// 上传成功
}, (V2NIMFailureCallback) error -> {
// 上传失败
}, (V2NIMProgressCallback) progress -> {
// 上传进度
});
iOS
objective-c[[[NIMSDK sharedSDK] v2StorageService] uploadFile:fileTask success:^(NSString * _Nonnull urlString) {
// 上传成功
} failure:^(V2NIMError * _Nonnull error) {
// 上传失败
} progress:^(float progress) {
// 上传进度
}];
macOS/Windows
cppV2NIMUploadFileParams fileParams;
fileParams.filePath = "~/test.txt";
fileParams.name = "hello.txt";
fileParams.scene = "customScene";
auto uploadTask = storageService.createUploadFileTask(fileParams);
storageService.uploadFile(
uploadTask,
[](nstd::string url) {
// upload file succeeded
},
[](V2NIMError error) {
// upload file failed, handle error
},
[](uint32_t progress) {
// upload progress
});
Web/uni-app/小程序
typescriptnim.V2NIMStorageService.uploadFile(task, function onProgress(progress) {
console.log('uploadFile progress: ', progress)
})
Harmony
typescriptnim.storageService.uploadFile(task, function onProgress(progress) {
console.log('uploadFile progress: ', progress)
})
返回值
Android/iOS/macOS/Windows
无返回值
Web/uni-app/小程序/Harmony
Promise<string> 文件 URL 地址
相关回调
Android/macOS/Windows
- 请求成功,返回
V2NIMSuccessCallback
回调,包含文件 URL 地址。 - 请求失败,返回
V2NIMFailureCallback
回调,包含存储相关错误码。
iOS
- 请求成功,返回
V2NIMFileUploadSuccess
回调,可自定义设置。 - 请求失败,返回
V2NIMFileUploadFailure
回调,可自定义设置。
Web/uni-app/小程序/Harmony
无
cancelUploadFile
接口描述
取消文件上传。
参数说明
Android
javavoid cancelUploadFile(V2NIMUploadFileTask fileTask, V2NIMSuccessCallback<Void> success,
V2NIMFailureCallback failure);
参数名称 | 类型 | 是否必填 | 默认值 | 描述 |
---|---|---|---|---|
fileTask |
V2NIMUploadFileTask |
是 | - | 需要取消的文件上传任务 |
success |
V2NIMSuccessCallback |
是 | - | 取消成功回调 |
failure |
V2NIMFailureCallback |
是 | - | 取消失败回调,返回错误码。 |
iOS
objective-c- (void)cancelUploadFile:(V2NIMUploadFileTask *)fileTask
success:(V2NIMSuccessCallback)success
failure:(V2NIMFailureCallback)failure;
参数名称 | 类型 | 是否必填 | 默认值 | 描述 |
---|---|---|---|---|
fileTask |
V2NIMUploadFileTask |
是 | - | 需要取消的文件上传任务 |
success |
V2NIMSuccessCallback |
是 | - | 取消成功回调 |
failure |
V2NIMFailureCallback |
是 | - | 取消失败回调,返回错误码。 |
macOS/Windows
cppvirtual void cancelUploadFile(V2NIMUploadFileTask fileTask, V2NIMSuccessCallback<void> success, V2NIMFailureCallback failure) = 0;
参数名称 | 类型 | 是否必填 | 默认值 | 描述 |
---|---|---|---|---|
fileTask |
V2NIMUploadFileTask |
是 | - | 需要取消的文件上传任务 |
success |
V2NIMSuccessCallback |
是 | - | 取消成功回调 |
failure |
V2NIMFailureCallback |
是 | - | 取消失败回调,返回错误码。 |
Web/uni-app/小程序
typescriptcancelUploadFile(fileTask: V2NIMUploadFileTask): Promise<void>
参数名称 | 类型 | 是否必填 | 默认值 | 描述 |
---|---|---|---|---|
fileTask |
V2NIMUploadFileTask |
是 | - | 需要取消的文件上传任务 |
Harmony
typescriptcancelUploadFile(fileTask: V2NIMUploadFileTask): Promise<void>
参数名称 | 类型 | 是否必填 | 默认值 | 描述 |
---|---|---|---|---|
fileTask |
V2NIMUploadFileTask |
是 | - | 需要取消的文件上传任务 |
示例代码
Android
javaV2NIMStorageService v2StorageService = NIMClient.getService(V2NIMStorageService.class);
v2StorageService.cancelUploadFile(task, (V2NIMSuccessCallback<Void>) s -> {
// 取消成功
}, (V2NIMFailureCallback) error -> {
// 取消失败
});
iOS
objective-c[[[NIMSDK sharedSDK] v2StorageService] cancelUploadFile:fileTask success:^{
//取消成功
} failure:^(V2NIMError * _Nonnull error) {
//取消失败
}];
macOS/Windows
cppV2NIMUploadFileTask fileTask;
// uploadFile
// ...
storageService.cancelUploadFile(
fileTask,
[]() {
// cancel upload file succeeded
},
[](V2NIMError error) {
// cancel upload file failed, handle error
});
Web/uni-app/小程序
typescriptnim.V2NIMStorageService.cancelUploadFile(task)
Harmony
typescriptnim.storageService.cancelUploadFile(task)
返回值
Android/iOS/macOS/Windows
无返回值
Web/uni-app/小程序/Harmony
Promise<void>
相关回调
Android/iOS/macOS/Windows
- 请求成功,返回
V2NIMSuccessCallback
回调。 - 请求失败,返回
V2NIMFailureCallback
回调,包含存储相关错误码。
Web/uni-app/小程序/Harmony
无
downloadFile
接口描述
下载文件。
参数说明
Android
javavoid downloadFile(String url, String filePath, V2NIMSuccessCallback<String> success,
V2NIMFailureCallback failure, V2NIMProgressCallback progress);
参数名称 | 类型 | 是否必填 | 默认值 | 描述 |
---|---|---|---|---|
url |
String | 是 | - | 文件 URL 地址 |
filePath |
String | 是 | - | 文件本地存储路径 |
success |
V2NIMSuccessCallback |
是 | - | 下载成功回调 |
failure |
V2NIMFailureCallback |
是 | - | 下载失败回调,返回错误码。 |
progress |
V2NIMProgressCallback |
否 | null | 文件下载进度回调 |
iOS
objective-c- (void)downloadFile:(NSString *)url
filePath:(NSString *)filePath
success:(V2NIMSuccessCallback)success
failure:(V2NIMFailureCallback)failure
progress:(nullable V2NIMProgressCallback)progress;
参数名称 | 类型 | 是否必填 | 默认值 | 描述 |
---|---|---|---|---|
url |
NSString * | 是 | - | 文件 URL 地址 |
filePath |
NSString * | 是 | - | 文件本地存储路径 |
success |
V2NIMSuccessCallback |
是 | - | 下载成功回调 |
failure |
V2NIMFailureCallback |
是 | - | 下载失败回调,返回错误码。 |
progress |
V2NIMProgressCallback |
否 | null | 文件下载进度回调 |
示例代码
Android
javaString url = "https://www.abc.com/ttt.txt";
// 设置文件存储位置
String filePath = "xxx/ttt.txt";
NIMClient.getService(V2NIMStorageService.class).downloadFile(url, filePath, new V2NIMSuccessCallback<String>() {
@Override
public void onSuccess(String filePath) {
// 下载成功
}
}, new V2NIMFailureCallback() {
@Override
public void onFailure(V2NIMError error) {
// 下载失败
}
}, new V2NIMProgressCallback() {
@Override
public void onProgress(int progress) {
// 下载进度
}
});
iOS
objective-c// 按需配置远程目录
NSString *url = @"https://www.abc.com/ttt.txt";
// 按需配置存储目录
NSString *filePath = @"Document/ttt.txt";
[[NIMSDK sharedSDK].v2StorageService downloadFile:url filePath:filePath success:^() {
// 成功回调
} failure:^(V2NIMError *error) {
// 失败回调
} progress:^(NSUInteger progress) {
// 进度回调
}];
返回值
无
相关回调
- 请求成功,返回
V2NIMSuccessCallback
回调。 - 请求失败,返回
V2NIMFailureCallback
回调,包含存储相关错误码。
shortUrlToLong
接口描述
短链接转长链接。
参数说明
Android
javavoid shortUrlToLong(String url, V2NIMSuccessCallback<String> success,
V2NIMFailureCallback failure);
参数名称 | 类型 | 是否必填 | 默认值 | 描述 |
---|---|---|---|---|
url |
String | 是 | - | 文件 URL 地址 |
success |
V2NIMSuccessCallback |
是 | - | 链接转换成功成功回调 |
failure |
V2NIMFailureCallback |
是 | - | 链接转换成功失败回调,返回错误码 |
iOS
objective-c- (void)shortUrlToLong:(NSString *)url
success:(V2NIMShortUrlToLongSuccess)success
failure:(V2NIMFailureCallback)failure;
参数名称 | 类型 | 是否必填 | 默认值 | 描述 |
---|---|---|---|---|
url |
NSString * | 是 | - | 文件 URL 地址 |
success |
V2NIMShortUrlToLongSuccess |
是 | - | 链接转换成功成功回调,可自定义设置。 |
failure |
V2NIMFailureCallback |
是 | - | 链接转换成功失败回调,返回错误码 |
Web/uni-app/小程序
typescriptshortUrlToLong(url: string): Promise<string>
参数名称 | 类型 | 是否必填 | 默认值 | 描述 |
---|---|---|---|---|
url |
string | 是 | - | 文件 URL 地址 |
示例代码
Android
javaString shortUrl = "https://s.netease.im/safe/AAAAAAAAAAAAAAAAAAAAAAAAAAA?_im_url=1";
NIMClient.getService(V2NIMStorageService.class).shortUrlToLong(shortUrl, new V2NIMSuccessCallback<String>() {
@Override
public void onSuccess(String longUrl) {
// 转换成功
}
}, new V2NIMFailureCallback() {
@Override
public void onFailure(V2NIMError error) {
// 转换失败
}
});
iOS
objective-c// 按需传入短链
NSString *shortUrl = @"https://s.netease.im/safe/AAAAAAAAAAAAAAAAAAAAAAAAAAA?_im_url=1";
[[NIMSDK sharedSDK].v2StorageService shortUrlToLong:shortUrl success:^(NSString *url) {
// 成功回调
} failure:^(V2NIMError *error) {
// 失败回调
}];
Web/uni-app/小程序
typescriptvar shortUrl = "https://s.netease.im/safe/AAAAAAAAAAAAAAAAAAAAAAAAAAA?_im_url=1";
var originUrl = await nim.V2NIMStorageService.shortUrlToLong(shortUrl)
返回值
无
相关回调
Android
- 请求成功,返回
V2NIMSuccessCallback
回调。 - 请求失败,返回
V2NIMFailureCallback
回调,包含存储相关错误码。
iOS
- 请求成功,返回
V2NIMShortUrlToLongSuccess
回调,可自定义设置。 - 请求失败,返回
V2NIMFailureCallback
回调,包含存储相关错误码。
imageThumbUrl
接口描述
生成图片缩略图链接。
参数说明
Android
javapublic static String imageThumbUrl(String url,int thumbSize)
参数名称 | 类型 | 是否必填 | 默认值 | 描述 |
---|---|---|---|---|
url |
String | 是 | - | 原始图片 URL 地址 |
thumbSize |
Integer | 是 | - | 图片缩放的尺寸 |
iOS
objective-c+ (NSString *)imageThumbUrl:(NSString *)url
thumbSize:(NSInteger)thumbSize;
参数名称 | 类型 | 是否必填 | 默认值 | 描述 |
---|---|---|---|---|
url |
NSString * | 是 | - | 原始图片 URL 地址 |
thumbSize |
NSInteger | 是 | - | 图片缩放的尺寸 |
Web/uni-app/小程序
typescriptimageThumbUrl(url: string, thumbSize: number): string
参数名称 | 类型 | 是否必填 | 默认值 | 描述 |
---|---|---|---|---|
url |
string | 是 | - | 原始图片 URL 地址 |
thumbSize |
number | 是 | - | 图片缩放的尺寸 |
示例代码
Android
javaString url = "http://xxx.com/xxx.jpg";
int thumbSize = 100;
String imageThumbUrl = V2NIMStorageUtil.imageThumbUrl(url, thumbSize);
iOS
objective-c- (void)imageThumbUrl
{
V2NIMMessage *message = nil; // message
V2NIMMessageImageAttachment *attachment = nil; // image attachment
if ([message.attachment isKindOfClass:V2NIMMessageImageAttachment.class]) {
attachment = (V2NIMMessageImageAttachment *)(message.attachment);
}
if (attachment) {
NSInteger size = 100; // screen size
size *= UIScreen.mainScreen.scale;
// keep aspect ratio and width or height > size
NSString *thumbUrl = [V2NIMStorageUtil imageThumbUrl:attachment.url thumbSize:size];
}
}
Web/uni-app/小程序
typescriptconst url = nim.V2NIMStorageUtil.imageThumbUrl("https://host/path", 80)
返回值
thumbUrl:缩略图的 URL 地址。
相关回调
无
videoCoverUrl
接口描述
生成视频封面图链接。
参数说明
Android
javapublic static String videoCoverUrl(String url,int offset)
参数名称 | 类型 | 是否必填 | 默认值 | 描述 |
---|---|---|---|---|
url |
String | 是 | - | 原始视频 URL 地址 |
offset |
Integer | 是 | - | 指定视频的目标封面所在时间,即从第几秒开始取封面 |
iOS
objective-c+ (NSString *)videoCoverUrl:(NSString *)url
offset:(NSInteger)offset;
参数名称 | 类型 | 是否必填 | 默认值 | 描述 |
---|---|---|---|---|
url |
NSString * | 是 | - | 原始视频 URL 地址 |
offset |
NSInteger | 是 | - | 指定视频的目标封面所在时间,即从第几秒开始取封面 |
Web/uni-app/小程序
typescriptvideoCoverUrl(url: string, offset: number): string
参数名称 | 类型 | 是否必填 | 默认值 | 描述 |
---|---|---|---|---|
url |
string | 是 | - | 原始视频 URL 地址 |
offset |
number | 是 | - | 指定视频的目标封面所在时间,即从第几秒开始取封面 |
示例代码
Android
javaString url = "http://xxx.com/xxx.jpg";
int offset = 0;
String videoCoverUrl = V2NIMStorageUtil.videoCoverUrl(url, offset);
iOS
objective-c- (void)videoCoverUrl
{
V2NIMMessage *message = nil; // message
V2NIMMessageVideoAttachment *attachment = nil; // video attachment
if ([message.attachment isKindOfClass:V2NIMMessageVideoAttachment.class]) {
attachment = (V2NIMMessageVideoAttachment *)(message.attachment);
}
if (attachment) {
NSInteger offset = 0; // start of video
NSString *coverUrl = [V2NIMStorageUtil videoCoverUrl:attachment.url offset:offset];
}
}
Web/uni-app/小程序
typescriptconst url = nim.V2NIMStorageUtil.videoCoverUrl("https://host/path", 0)
返回值
coverUrl:封面图的 URL 地址。
相关回调
无
此文档是否对你有帮助?