首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >亚马逊网络服务转录卡在iOS的getTranscriptionJob中

亚马逊网络服务转录卡在iOS的getTranscriptionJob中
EN

Stack Overflow用户
提问于 2019-11-27 08:27:36
回答 1查看 119关注 0票数 1

我正在尝试使用aws-sdk-ios在iOS应用程序中使用亚马逊网络服务转录。应用程序启动了一个转录作业,我可以在AWS控制台上看到该作业。但应用程序无法列出作业或获取特定作业,因为它被卡在对getTranscriptionJoblistTranscriptionJobs的请求中,因为这些请求永远不会完成(我在完成块中添加了一条打印语句和一个断点,它永远不会打印,也不会到达断点)。

我上传了一个示例单视图应用程序到GitHub上,演示了这个问题。您需要一个亚马逊网络服务帐户或IAM用户,拥有对S3和转录的完全权限。在适当变量中插入ViewController.swift中的帐户密钥和S3存储桶。

https://github.com/joaomarceloods/AWSTranscribeBug

我需要帮助。这是一个bug,还是我做错了什么?

Swift、iOS 13.2、CocoaPods、AWSCore 2.12.1、AWSTranscribe 2.12.1

最重要的代码片段:

代码语言:javascript
复制
    /// `getTranscriptionJob` repeatedly until the status is no longer `inProgress`.
    /// However, `getTranscriptionJob` never completes.
    var transcriptionInProgress = true
    while transcriptionInProgress {
        print("getTranscriptionJob")
        transcribe.getTranscriptionJob(request).continueWith { task -> Any? in
            print("getTranscriptionJob never completes...")
            let transcriptionJob = task.result?.transcriptionJob
            transcriptionInProgress = transcriptionJob?.transcriptionJobStatus == .inProgress
            return nil
        }.waitUntilFinished()
    }
    print("...after the getTranscriptionJob")
EN

回答 1

Stack Overflow用户

发布于 2019-12-14 03:21:46

我找到了一个解决方案。

我仍然不明白为什么getTranscriptionJob会冻结,但是如果你在DispatchQueue.global()上运行它,它会正常执行

代码语言:javascript
复制
.continueWith(executor: AWSExecutor(dispatchQueue: DispatchQueue.global())) {

示例代码diff:https://github.com/joaomarceloods/AWSTranscribeBug/commit/98e43af553413ed2bbd0c3f96e259139a991303e

参考:https://aws-amplify.github.io/docs/ios/how-to-ios-asynchrounous-tasks#executing-a-block-on-the-main-thread-with-awstask

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59061357

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档