测试测试过 | ✗ |
Lang语言 | Obj-CObjective C |
许可证 | MIT |
发布最后发布 | 2017年1月 |
由 Kjartan Vestvik 维护。
依赖 | |
AFNetworking | ~> 3.0 |
SynqHttpLib | >= 0 |
SynqUploader 是一个简单的 Objective-C 库,用于将视频上传到 SYNQ 视频API。
该库使用 AFNetworking 3 与服务器通信。它使用配置过背景的 NSURLSession 来管理视频上传,这使得上传可以在应用前台或后台时继续进行。
要运行示例项目,请克隆仓库,然后首先从 Example 目录运行 pod install
。示例应用将显示设备上所有视频的缩略图集合视图。选择您想要的视频,然后点击上传按钮上传。
重要提示:SynqUploader 依赖于服务器进行用户认证,并调用 SYNQ 视频API 的函数来创建视频对象和获取上传所需参数。示例项目使用 SynqHttpLib 库进行这些调用。示例服务器是一个简单的 NodeJS 服务器,您可以在本地机器上轻松配置它。仓库和所需说明可以在这里找到:https://github.com/SYNQfm/synq-node-server 此外,您还需要从 SYNQ 管理面板获取 API 键。在现实场景中,这应由您的后端处理。然后,后端应将上传参数提供给您的应用。
有关更多信息,请参阅文档中的 项目和 API 键 部分。
SynqUploader 通过 CocoaPods 提供。要安装它,只需在 Podfile 中添加以下行
pod 'SynqUploader'
#import <SynqUploader/SynqUploader.h>
// Create SQVideoUpload objects for each video to upload,
// add PHAsset for the videos
SQVideoUpload *video1 = [[SQVideoUpload alloc] initWithPHAsset:nil];
SQVideoUpload *video2 = [[SQVideoUpload alloc] initWithPHAsset:nil];
// When you have successfully created a video object through the video/create function in the SYNQ Video API,
// add the returned video_id parameter to the video
NSString *returnedVideoId1, *returnedVideoId2;
[video1 setVideoId:returnedVideoId1];
[video2 setVideoId:returnedVideoId2];
// Add upload parameters for each video, as a dictionary
// This would be the parameters returned from SYNQ API function video/upload, and must contain the following keys:
// "acl"
// "key"
// "Policy"
// "action"
// "Signature"
// "Content-Type"
// "AWSAccessKeyId"
NSDictionary *uploadParams1;
NSDictionary *uploadParams2;
[video1 setUploadParameters:uploadParams1];
[video2 setUploadParameters:uploadParams2];
// Finally, add all SQVideoUpload objects to an array
NSArray *assetsArray = [NSArray arrayWithObjects:video1, video2, nil];
// Use the singleton instance to initiate an upload for the video array
[[SynqUploader sharedInstance] uploadVideoArray:assetsArray
exportProgressBlock:^(double exportProgress) {
NSLog(@"Export progress: %f", exportProgress);
// Report progress to UI
}
uploadProgressBlock:^(double uploadProgress) {
NSLog(@"Upload progress: %f", uploadProgress);
// Report progress to UI
}];
每个上传的结果都通过 SQVideoUploadDelegate 方法报告。以下是可用的方法和如何使用它们:
- (void) videoUploadCompleteForVideo:(SQVideoUpload *)video;
当SQVideoUpload成功上传时,将调用此方法。
- (void) videoUploadFailedForVideo:(SQVideoUpload *)video;
当上传SQVideoUpload时出现错误时,将调用此方法。
- (void) allVideosUploadedSuccessfully;
当所有SQVideoUpload对象成功上传时,将调用此方法。
此库需要iOS 8或更高版本
Kjartan Vestvik, [email protected]
SynqUploader可在MIT许可证下使用。有关更多信息,请参阅LICENSE文件。