【问题标题】:Is it possible to upload a video while still letting the user interact with app?是否可以在仍然让用户与应用程序交互的同时上传视频?
【发布时间】:2017-08-10 13:28:21
【问题描述】:

我正在使用 AWS 的 transferUtility.uploadData,它使用 iOS 中的后台传输功能来上传视频

基本上,当用户按下按钮启动 transferUtility.uploadData 时,navigationController 上会推送一个新屏幕。因此,当视频上传时,他们可以与新屏幕进行交互。

问题是在导航上推送屏幕时有很大的延迟,我想知道是否有办法在导航控制器上推送屏幕(例如在拍摄视频后 instagram 会出现一个新屏幕以自定义或发送给朋友)立即。

 transferUtility.uploadData(
        data,
        bucket: S3BucketName,
        key: videoName,
        contentType: "movie/mov",
        expression: expression,
        completionHandler: completionHandler).continueWith { (task) -> AnyObject! in
            if let error = task.error {
                print(error)
                print("Error: \(error.localizedDescription)")
            }

            if let _ = task.result {
                print("Upload Starting!----")

                // Do something with uploadTask.

                //Open new screen
                self.navigationController?.pushViewController(CameraDetailTableViewController(videoURL: AWS_URL + videoName), animated: false)


            }

            return nil;
    }

【问题讨论】:

    标签: ios swift amazon-web-services video amazon-s3


    【解决方案1】:

    您需要使用 Grand Central Dispatch 或 AWSExecutor。

    有关如何实施的完整详细信息,请参阅 AWSTask 的文档。

    http://docs.aws.amazon.com/mobile/sdkforios/developerguide/awstask.html

    【讨论】:

      【解决方案2】:

      使用 dispatch_async 上传我们的视频。这样上传在应用程序的不同线程上,并将在后台运行,因此用户可以正常工作。在上传的完成处理程序中,您可以通过弹出窗口通知用户上传成功。

      这是异步调度的代码:

      DispatchQueue.main.asyncAfter(deadline: .now() + 0.5) { // in half a second...
          //upload your video here
      }
      

      【讨论】:

        猜你喜欢
        • 2011-09-05
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多