ios - Adobe AIR for IOS 中的 native 扩展代码是否在单独的 CPU 线程中运行?

标签 ios air air-native-extension

我正在使用 Flex 4.6 和 AIR 3.3 构建一个 IOS 应用程序。我确实有一些 Objective-C 库,我们将使用它们来处理音频、图像和视频以创建新的“视频”文件。

由于我们正在通过 native 扩展在设备上进行所有这些处理,我想知道用户是否会看到应用程序锁定直到处理完成。换句话说,我是否需要向他们显示一个进度条,并且在完成之前不允许他们在应用程序中执行任何其他操作,或者 native 扩展代码是否在单独的线程中运行?

第二个问题是......如果 Native Code 不在单独的线程中运行,是否可以使用新的 Actionscript Workers 将处理卸载到单独的线程?

最佳答案

您的 ANE 可以调用新线程,因此您的应用程序不应锁定。

这是开发原生扩展的非常好的引用:http://help.adobe.com/en_US/air/extensions/air_extensions.pdf

引用相关部分:
“ native C 代码可以将异步事件分派(dispatch)回扩展的 ActionScript 端。例如,扩展方法可以启动另一个线程来执行某些任务。当另一个线程中的任务完成时,该线程调用 FREDispatchStatusEventAsync() 来通知扩展的 ActionScript 端。事件的目标是 ActionScript ExtensionContext 实例。

关于工作线程,是的,这正是工作线程的用途,从我从 AS3 实现中读到的内容来看,它会像那样工作。但是,我最好的选择是,对于此类任务,使用 ANE 会比使用 AS3 更快。如果您准备好运行库,我会使用 ANE,并且可能会在发布后尝试工作线程,如果您主要在 AS3 中进行开发,可能会更容易维护。

关于ios - Adobe AIR for IOS 中的 native 扩展代码是否在单独的 CPU 线程中运行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12038436/

相关文章:

iphone - 我可以在 iOS 上使用 AV Foundation Framework 流式传输 .mp3 链接吗?

ios - 如何通过 Twilio Functions 向多个号码发送短信?

ios - 是否可以从 IOS 项目中导出 IOS 框架?

windows - 在 Adob​​e AIR 中运行 native 程序

java - 将 Retrofit 与 Flex Mobile 应用程序结合使用

android - 使用 AIR 构建 Android 加载对话框

ios - [NSBlockOperation addExecutionBlock :]: blocks cannot be added after the operation has started executing or finished

ios - AIR 3.6 iOS - 使用 ABC 加载外部 SWF

android - 如何从 Android 应用程序运行 Flash

java - 在 Android 启动时启动 Flex 移动应用程序