SynqUploader 0.3.3

SynqUploader 0.3.3

测试测试过
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'

入门

导入 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文件。