返回

FFMPEG 套件 iOS 异步调用没有异步行为

发布时间:2022-08-07 21:45:40 382
# android

当我调用我期望异步行为的executeAsync方法时FFmpegKit,代码运行但从不等待FFmpegKit.executeAsync运行,因此,程序输出来自print("FFmpeg process exited with state \(FFmpegKitConfig.sessionState(toString: session.getState()) ?? "Unknown") and rc \(returnCode).\(session.getFailStackTrace() ?? "Unknown")")(见下面的代码)顺便说一句,立即输出......确保我检查了输出文件路径并且没有文件保存在那里,这意味着 FFMPEG 命令实际上没有执行。

guard let outputPath = FileManager.default.urls(for: .cachesDirectory, in: .userDomainMask).first else { return }
                    let output = outputPath.appendingPathComponent("file1.mp4")
                    FFmpegKit.executeAsync("-i http://commondatastorage.googleapis.com/gtv-videos-bucket/sample/ForBiggerBlazes.mp4 -c:v \(output.path)") { session in
                        guard let session = session else {
                            print("!! Invalid session")
                            return
                        }
                        guard let returnCode = session.getReturnCode() else {
                            print("!! Invalid return code")
                            return
                        }
                        print("FFmpeg process exited with state \(FFmpegKitConfig.sessionState(toString: session.getState()) ?? "Unknown") and rc \(returnCode).\(session.getFailStackTrace() ?? "Unknown")")
                    } withLogCallback: { logs in
                        guard logs != nil else { return }
                        // CALLED WHEN SESSION PRINTS LOGS
                    } withStatisticsCallback: { stats in
                        guard stats != nil else { return }
                        // CALLED WHEN SESSION GENERATES STATISTICS
                    }

顺便说一句,如果我尝试这样await做FFmpegKit.executeAsync,我会收到一个No 'async' operations occur within 'await' expression警告,这应该会发生,因为该方法不是异步的。

如果您想复制它,发布的代码不依赖于依赖项以外的任何内容,可以通过GitHub 存储库下载链接下载

如果您想了解有关如何安装依赖项的更多信息,请单击此处

问题 为什么我的异步 FFMPEG 方法会立即运行并退出,而不执行我传递的 FFMPEG 命令?

我熟悉相对较新的 async 和 await 功能,因此我就是这样处理的,我将上面的代码封装在一个异步函数中,我在调用时正在等待。

特别声明:以上内容(图片及文字)均为互联网收集或者用户上传发布,本站仅提供信息存储服务!如有侵权或有涉及法律问题请联系我们。
举报
评论区(1)
按点赞数排序
用户头像