README
为企业提供的视频托管。
- Vzaar 是一个在线视频平台
- 它允许您的客户通过 vzaar API 上传自己的视频。
- 从 vzaar 数据库中提取信息,并将其与您的应用数据结合起来。
- 例如,同步您的产品目录与您的视频,确保视频始终出现在正确的产品页面上。
- 版本 1.1.0
文档
https://vzaar.readme.io/v2/reference
如何为 Swift 项目设置
- 如果您的项目是在 Swift 中,可以创建一个如下所示的 Podfile
target 'YourProject' do
pod 'VzaarSwift'
end
use_frameworks!
然后打开一个终端窗口,将目录更改到您的项目并运行 'pod install'
- 然后在您的 tableViewController.swift 中
#!swift
import VzaarSwift
- 别忘了设置您的 client_id 和 auth_token
#!swift
Vzaar.sharedInstance().config = VzaarConfig(clientId: "<client-id>", authToken: "<auth-token>")
视频
获取视频
#!swift
let vzaarGetVideosParameters = VzaarGetVideosParameters()
vzaarGetVideosParameters.page = 1
vzaarGetVideosParameters.per_page = 50
Vzaar.sharedInstance().getVideos(vzaarGetVideosParameters: vzaarGetVideosParameters, success: { (vzaarVideos) in
self.videos = vzaarVideos
//Handle UI response in Main Thread
self.tableView.reloadData()
}, failure: { (vzaarError) in
print(vzaarError)
}) { (error) in
print(error)
}
获取视频(单部分)
#!swift
let getVideoParameters = VzaarGetVideoParameters(id: videoId)
Vzaar.sharedInstance().getVideo(vzaarGetVideoParameters: getVideoParameters, success: { (vzaarVideo) in
//Handle video from the response.
}, failure: { (vzaarError) in
print(vzaarError)
}) { (error) in
print(error)
}
更新视频
#!swift
let updateVideoParameters = VzaarUpdateVideoParameters(id: Int32(videoId))
updateVideoParameters.title = "Text to update"
Vzaar.sharedInstance().updateVideo(vzaarUpdateVideoParameters: updateVideoParameters, success: { (video) in
//Handle the video from the response
}, failure: { (vzaarError) in
print(vzaarError)
}) { (error) in
print(error)
}
删除视频
#!swift
let deleteVideoParameters = VzaarDeleteVideoParameters(id: Int32(videoId))
Vzaar.sharedInstance().deleteVideo(vzaarDeleteVideoParameters: deleteVideoParameters, success: {
//Handle the deleting of the video here
}, failure: { (vzaarError) in
print(vzaarError)
}) { (error) in
print(error)
}
创建视频
#!swift
let createVideoParameters = VzaarCreateVideoParameters(guid: signature.guid)
Vzaar.sharedInstance().createVideo(videoCreationParameters: createVideoParameters, success: { (vzaarVideo) in
//Handle the video from the response.
}, failure: { (vzaarError) in
print(vzaarError)
}) { (error) in
print(error)
}
上传视频
上传视频包括一个调用,执行以下操作:
- 创建一个签名(单个或多个部分)。
- 使用AWS服务上传视频。
- 从Vzaar获取视频。
以下是一个上传视频的单部分请求的示例
#!swift
#!swift
let singlePartVideoSignatureParameters = VzaarSinglePartVideoSignatureParameters()
singlePartVideoSignatureParameters.filename = name
let directory = NSTemporaryDirectory()
let lastPathComponent = (fileURLWithPath.absoluteString as NSString).lastPathComponent
let fullPath = directory + lastPathComponent
let fileURLPath = URL(fileURLWithPath: fullPath)
Vzaar.sharedInstance().uploadVideo(uploadProgressDelegate: self,
singlePartVideoSignatureParameters: singlePartVideoSignatureParameters,
fileURLPath: fileURLPath,
success: { (video) in
//Handle the video from the response.
}, failure: { (vzaarError) in
print(vzaarError)
}) { (error) in
print(error)
}
以下是一个上传视频的多部分请求的示例
#!swift
let multiPartVideoSignatureParameters = VzaarMultiPartVideoSignatureParameters(filename: "Filename.mp4", filesize: 52428800)
let directory = NSTemporaryDirectory()
let lastPathComponent = (fileURLWithPath.absoluteString as NSString).lastPathComponent
let fullPath = directory + lastPathComponent
let fileURLPath = URL(fileURLWithPath: fullPath)
Vzaar.sharedInstance().uploadVideo(uploadProgressDelegate: self, multiPartVideoSignatureParameters: multiPartVideoSignatureParameters, fileURLPath: fileURLPath, success: { (vzaarVideo) in
//Handle video from the response
}, failure: { (vzaarError) in
print(vzaarError)
}) { (error) in
print(error)
}
类别
获取类别
#!swift
let categoriesParameters = VzaarGetCategoriesParameters()
Vzaar.sharedInstance().getCategories(vzaarGetCategoriesParameters: categoriesParameters, success: { (vzaarCategories) in
//Handle categories from the response.
}, failure: { (vzaarError) in
print(vzaarError)
}) { (error) in
print(error)
}
获取类别子树
let categorySubtreeParameter = VzaarGetCategoriesSubtreeParameters(id: Int32(categoryId))
Vzaar.sharedInstance().getCategoriesSubtree(vzaarGetCategoriesSubtreeParameters: categorySubtreeParameter, success: { (vzaarCategories) in
//Handle categories from the response.
}, failure: { (vzaarError) in
print(vzaarError)
}) { (error) in
print(error)
}
获取类别
#!swift
let categoryParameters = VzaarGetCategoryParameters(id: Int32(categoryId))
Vzaar.sharedInstance().getCategory(vzaarGetCategoryParameters: categoryParameters, success: { (vzaarCategory) in
//Handle category from the response.
}, failure: { (vzaarError) in
print(vzaarError)
}) { (error) in
print(error)
}
创建类别
#!swift
let categoryParameters = VzaarCreateCategoryParameters(name: name)
Vzaar.sharedInstance().createCategory(vzaarCreateCategoryParameters: categoryParameters, success: { (category) in
//Handle category from the response.
}, failure: { (vzaarError) in
print(vzaarError)
}) { (error) in
print(error)
}
更新类别
#!swift
let updateCategoryParameters = VzaarUpdateCategoryParameters(id: Int32(categoryId))
updateCategoryParameters.name = "Text to update the name"
Vzaar.sharedInstance().updateCategory(vzaarUpdateCategoryParameters: updateCategoryParameters, success: { (category) in
//Handle category from the response.
}, failure: { (vzaarError) in
print(vzaarError)
}) { (error) in
print(error)
}
删除类别
#!swift
let deleteCategoryParameters = VzaarDeleteCategoryParameters(id: Int32(categoryId))
Vzaar.sharedInstance().deleteCategory(vzaarDeleteCategoryParameters: deleteCategoryParameters, success: {
//Handle the deleting of the category.
}, failure: { (vzaarError) in
print(vzaarError)
}) { (error) in
print(error)
}
签名
创建单部分签名
#!swift
let singlePartVideoSignatureParameters = VzaarSinglePartVideoSignatureParameters()
singlePartVideoSignatureParameters.filename = name
Vzaar.sharedInstance().createSignature(singlePartVideoSignatureParameters: singlePartVideoSignatureParameters, success: { (vzaarSignature) in
//Handle signature from the response.
}, failure: { (vzaarError) in
print(vzaarError)
}) { (error) in
print(error)
}
创建多部分签名
#!swift
let multiPartVideoSignatureParameters = VzaarMultiPartVideoSignatureParameters(filename: "filename.mp4", filesize: Int64(52428800))
multiPartVideoSignatureParameters.filename = name
Vzaar.sharedInstance().createSignature(multiPartVideoSignatureParameters: multiPartVideoSignatureParameters, success: { (vzaarSignature) in
//Handle signature from the response.
}, failure: { (vzaarError) in
print(vzaarError)
}) { (error) in
print(error)
}
链接上传
创建链接上传
#!swift
let createLinkUploadParameters = VzaarCreateLinkUploadParameters(url: "the url")
Vzaar.sharedInstance().getLinkUpload(vzaarCreateLinkUploadParameters: createLinkUploadParameters, success: { (vzaarVideo) in
//Handle video from the response
}, failure: { (vzaarError) in
print(vzaarError)
}) { (error) in
print(error)
}
摄取食谱
获取摄取食谱
#!swift
let ingestRecipesParameters = VzaarGetIngestRecipesParameters()
Vzaar.sharedInstance().getIngestRecipes(vzaarGetIngestRecipesParameters: ingestRecipesParameters, success: { (vzaarIngestRecipes) in
//Handle recipes from the response.
}, failure: { (vzaarError) in
print(vzaarError)
}) { (error) in
print(error)
}
创建摄入配方
#!swift
//ids is an array of int32
let createIngestRecipeParameters = VzaarCreateIngestRecipeParameters(name: name, encoding_preset_ids: ids)
Vzaar.sharedInstance().createIngestRecipe(vzaarCreateIngestRecipeParameters: createIngestRecipeParameters, success: { (ingestRecipe) in
//Handle recipe from the response.
}, failure: { (vzaarError) in
print(vzaarError)
}) { (error) in
print(error)
}
获取摄入配方
#!swift
let ingestRecipeParameters = VzaarGetIngestRecipeParameters(id: Int32(recipeId))
Vzaar.sharedInstance().getIngestRecipe(vzaarGetIngestRecipeParameters: ingestRecipeParameters, success: { (vzaarIngestRecipe) in
//Handle recipes from the response.
}, failure: { (vzaarError) in
print(vzaarError)
}) { (error) in
print(error)
}
更新摄入配置
#!swift
let updateIngestRecipeParameters = VzaarUpdateIngestRecipeParameters(id: Int32(ingestRecipeId))
updateIngestRecipeParameters.name = "text to update for the ingest recipe"
Vzaar.sharedInstance().updateIngestRecipe(vzaarUpdateIngestRecipeParameters: updateIngestRecipeParameters, success: { (ingestRecipe) in
//Handle recipe from the response.
}, failure: { (vzaarError) in
print(vzaarError)
}) { (error) in
print(error)
}
删除摄入配方
#!swift
let deleteIngestRecipeParameters = VzaarDeleteIngestRecipeParameters(id: Int32(ingestRecipeId))
Vzaar.sharedInstance().deleteIngestRecipe(vzaarDeleteIngestRecipeParameters: deleteIngestRecipeParameters, success: {
//Handle recipe deleting here.
}, failure: { (vzaarError) in
print(vzaarError)
}) { (error) in
print(error)
}
编码预设
获取编码预设
#!swift
let encodingPresetsParameters = VzaarGetEncodingPresetsParameters()
Vzaar.sharedInstance().getEncodingPresets(vzaarGetEncodingPresetsParameters: encodingPresetsParameters, success: { (vzaarEncodingPresets) in
//Handle encoding Presets from the response.
}, failure: { (vzaarError) in
print(vzaarError)
}) { (error) in
print(error)
}
获取编码预设详情
#!swift
let encodingPresetParameters = VzaarGetEncodingPresetParameters(id: Int32(encodingPresetId))
Vzaar.sharedInstance().getEncodingPresets(vzaarGetEncodingPresetsParameters: encodingPresetParameters, success: { (vzaarEncodingPreset) in
//Handle encoding Preset from the response.
}, failure: { (vzaarError) in
print(vzaarError)
}) { (error) in
print(error)
}
播放列表
获取播放列表
#!swift
let playlistParameters = VzaarGetPlaylistsParameters()
Vzaar.sharedInstance().getPlaylists(vzaarGetPlaylistsParameters: playlistParameters, success: { (vzaarPlaylists) in
//Handle playlists from the response.
}, failure: { (vzaarError) in
print(vzaarError)
}) { (error) in
print(error)
}
创建播放列表
#!swift
let createPlaylistParameters = VzaarCreatePlaylistParameters(title: "title of the playst", category_id: Int32(category_id))
createPlaylistParameters.max_vids = 0
Vzaar.sharedInstance().createPlaylist(vzaarCreatePlaylistParameters: createPlaylistParameters, success: { (vzaarPlaylist) in
//Handle playlist from the response.
}, failure: { (vzaarError) in
print(vzaarError)
}) { (error) in
print(error)
}
获取播放列表
#!swift
let playlistParameters = VzaarGetPlaylistParameters(id: Int32(playlistId))
Vzaar.sharedInstance().getPlaylist(vzaarGetPlaylistParameters: playlistParameters, success: { (vzaarPlaylist) in
//Handle playlist from the response.
}, failure: { (vzaarError) in
print(vzaarError)
}) { (error) in
print(error)
}
更新播放列表
#!swift
let updatePlaylistParameters = VzaarUpdatePlaylistParameters(id: Int32(playlistId))
updatePlaylistParameters.title = "text to update playlist"
Vzaar.sharedInstance().updatePlaylist(vzaarUpdatePlaylistParameters: updatePlaylistParameters, success: { (vzaarPlaylist) in
//Handle playlist from the response.
}, failure: { (vzaarError) in
print(vzaarError)
}) { (error) in
print(error)
}
删除播放列表
#!swift
let vzaarDeleteParameters = VzaarDeletePlaylistParameters(id: Int32(playlistId))
Vzaar.sharedInstance().deletePlaylist(vzaarDeletePlaylistParameters: vzaarDeleteParameters, success: {
//Handle deleting the playlist here.
}, failure: { (vzaarError) in
print(vzaarError)
}) { (error) in
print(error)
}
图像框架
设置图像框架
#!swift
let params = VzaarUpdateImageFrameParameters(id: Int32(videoId))
Vzaar.sharedInstance().updateImageFrame(vzaarUpdateImageFrameParameters: params, success: { (vzaarVideo) in
//Handle video from response
}, failure: { (vzaarError) in
print(vzaarError)
}) { (error) in
print(error)
}
上传图像框架
let params = VzaarUploadImageFrameParameters(id: Int32(self.videoId), image: image)
Vzaar.sharedInstance().uploadImageFrame(vzaarUploadImageFrameParameters: params, success: { (vzaarVideo) in
//Handle video from response
}, failure: { (vzaarError) in
print(vzaarError)
}) { (error) in
print(error)
}
字幕
获取字幕
let params = VzaarGetSubtitlesParameters(id: videoId)
Vzaar.sharedInstance().getSubtitles(vzaarGetSubtitlesParameters: params, success: { (vzaarSubtitles) in
//Handle subtitles array
}, failure: { (vzaarError) in
print(vzaarError)
}) { (error) in
print(error)
}
创建字幕
let params = VzaarPostSubtitlesParameters(id: videoId)
params.code = languageCode //example: en , fr, de etc...
params.content = subtitlesContent //You can use either content or file parameter to create a Subtitle. File parameter is the fullPath to the subtitles file.
Vzaar.sharedInstance().createSubtitle(vzaarPostSubtitlesParameters: params, success: { (vzaarSubtitle) in
//Handle subtitle from response
}, failure: { (vzaarError) in
print(vzaarError)
}) { (error) in
print(error)
}
更新字幕
let params = VzaarUpdateSubtitleParameters(id: videoId, subtitle: Int32(subtitleId))
params.code = languageCode //example: en , fr, de etc...
params.content = subtitlesContent //You can use either content or file parameter to create a Subtitle. File parameter is the fullPath to the subtitles file.
Vzaar.sharedInstance().updateSubtitle(vzaarUpdateSubtitleParameters: params, success: { (vzaarSubtitle) in
//Handle subtitle from response
}, failure: { (vzaarError) in
print(vzaarError)
}) { (error) in
print(error)
}
删除字幕
let params = VzaarDeleteSubtitlesParameters(id: videoId, subtitle: Int32(subtitleId))
Vzaar.sharedInstance().deleteSubtitle(vzaarDeleteSubtitlesParameters: params, success: {
//Handle UI subtitle removal
}, failure: { (vzaarError) in
print(vzaarError)
}) { (error) in
print(error)
}
如何为Objective-c项目配置
- 如果你的项目使用 objective-c,你必须使用特定的 pod 版本 '1.0.1-objc' 通过桥接头访问类和属性。
#!objective-c
target 'YourProject' do
pod 'VzaarSwift', '~> 1.0.4-objc'
end
use_frameworks!
- 然后在你的 TableViewController.m 中
#!objective-c
@import VzaarSwift;
- 别忘了设置您的 client_id 和 auth_token
#!objective-c
[Vzaar sharedInstance].config = [[VzaarConfig alloc]initWithClientId:@"client-id" authToken:@"auth-token"];
- objective-c 中获取视频的请求示例:
#!objective-c
VzaarGetVideosParameters *getVideosParameters = [[VzaarGetVideosParameters alloc] init];
[[Vzaar sharedInstance] getVideosWithVzaarGetVideosParameters:getVideosParameters success:^(NSArray<VzaarVideo *> * vzaarVideos) {
self.videos = vzaarVideos;
[self.tableView reloadData];
} failure:^(VzaarError * vzaarError) {
NSLog(@"%@",vzaarError);
} noResponse:^(NSError * error) {
NSLog(@"%@",error);
}];