热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

iOS11+Xcode9.0=无音频单元

如何解决《iOS11+Xcode9.0=无音频单元》经验,为你挑选了1个好方法。

在iOS 11中需要有关Audio Units的帮助.我有两个iOS应用程序:一个提供V3音频单元的应用程序和一个用于Audio Units的主机应用程序.问题是,当我使用iOS 11 SDK在Xcode 9.0中编译主机应用程序并在带有iOS 11的iPhone上运行它时,主机应用程序看不到音频单元.

我做了一些研究,这就是我得到的:问题影响任何音频单元应用程序,而不仅仅是这两个特定的应用程序.如果您使用Apple网站上的AudioUnitV3Example项目(https://developer.apple.com/library/content/samplecode/AudioUnitV3Example/Introduction/Intro.html),您可以轻松地看到同样的问题.此示例项目包含两个应用程序:iOSAUv3Host和提供音频单元应用程序扩展的iOSFilterDemoApp.您需要在iOS设备上安装这两个应用程序.

当您启动AUv3Host应用程序时,它将显示系统中所有可用音频单元的列表:

在iOS 10上,有16个音频单元可用 - 苹果有15个默认音频单元,Demo有FiltedDemo音频单元.

在iOS 11上,Apple只有15个Audio Units-15默认音频单元.AUv3Host应用程序没有看到FiltedDemo音频单元(见截图).

iOS 10和iOS 11截图 我还使用iOS 10 SDK(来自https://developer.apple.com/download/more/)下载了Xcode 8.3.3,并尝试了构建SDK和设备的iOS版本的所有可能配置.这是我得到的:

FiltedDemo通过iOS的11 SDK +内置AUv3Host通过iOS的11 SDK +的iOS 11设备= BAD(否FiltedDemo)建

FiltedDemo通过iOS的10 SDK +内置AUv3Host通过iOS的11 SDK +的iOS 11设备= BAD(否FiltedDemo)建

FiltedDemo通过iOS的11 SDK +内置AUv3Host通过iOS的10 SDK +的iOS设备11 = OK内置(FiltedDemo存在)

FiltedDemo通过iOS的10 SDK +内置AUv3Host通过iOS的10 SDK +的iOS设备11 = OK内置(FiltedDemo存在)

FiltedDemo通过iOS的11 SDK +内置AUv3Host通过iOS的11 SDK +的iOS 10设备= OK内置(FiltedDemo存在)

FiltedDemo通过iOS的10 SDK +内置AUv3Host通过iOS的11 SDK +的iOS 10设备= OK内置(FiltedDemo存在)

FiltedDemo通过iOS的11 SDK +内置AUv3Host通过iOS的10 SDK +的iOS 10设备= OK内置(FiltedDemo存在)

FiltedDemo通过iOS的10 SDK +内置AUv3Host通过iOS的10 SDK +的iOS 10设备= OK内置(FiltedDemo存在)

因此,看起来问题仅在BOTH条件有效时出现:设备安装了iOS 11,主机应用程序使用iOS 11 SDK进行编译.音频单元编译不会影响问题.

你有任何想法如何解决这个问题?有没有办法解决这个问题,或者它是iOS 11 SDK的错误,这只能由Apple修复?



1> Padavan..:

问题解决了.我还将这个问题作为bug发布在bugreport.apple.com上,我刚从Apple团队那里得到答案:

Engineering已请求有关您的错误报告的以下信息:请将应用程序间音频功能添加到您的应用程序中.这是一项隐私要求,并在WWDC演讲期间提到过.由于AUv3Host需要自签名,因此权利将丢失.所有AUv3主机都需要Inter-App Audio授权才能看到v3音频单元.我们将研究如何使其更加明确,并将更新样本以避免这些问题.

这就像一个魅力.iOS 11设备现在可以看到所有16个音频单元,包括FiltedDemo. 问题已解决

如果这个要求更明显,那就太好了.我希望Apple能够更新他们的文档和示例项目.


推荐阅读
  • 应用链时代,详解 Avalanche 与 Cosmos 的差异 ... [详细]
  • MATLAB字典学习工具箱SPAMS:稀疏与字典学习的详细介绍、配置及应用实例
    SPAMS(Sparse Modeling Software)是一个强大的开源优化工具箱,专为解决多种稀疏估计问题而设计。该工具箱基于MATLAB,提供了丰富的算法和函数,适用于字典学习、信号处理和机器学习等领域。本文将详细介绍SPAMS的配置方法、核心功能及其在实际应用中的典型案例,帮助用户更好地理解和使用这一工具箱。 ... [详细]
  • 在工业过程控制系统中,由于被控对象的环境比较恶劣,干扰源比较多,仪器、仪表采集的信息常会受到干扰,所以在模拟系统中,为了消除干扰,常采用RC滤波电路,而在由工业控制计算机组成的自动 ... [详细]
  • 在CentOS 7环境中安装配置Redis及使用Redis Desktop Manager连接时的注意事项与技巧
    在 CentOS 7 环境中安装和配置 Redis 时,需要注意一些关键步骤和最佳实践。本文详细介绍了从安装 Redis 到配置其基本参数的全过程,并提供了使用 Redis Desktop Manager 连接 Redis 服务器的技巧和注意事项。此外,还探讨了如何优化性能和确保数据安全,帮助用户在生产环境中高效地管理和使用 Redis。 ... [详细]
  • 在软件开发过程中,经常需要将多个项目或模块进行集成和调试,尤其是当项目依赖于第三方开源库(如Cordova、CocoaPods)时。本文介绍了如何在Xcode中高效地进行多项目联合调试,分享了一些实用的技巧和最佳实践,帮助开发者解决常见的调试难题,提高开发效率。 ... [详细]
  • 浏览器作为我们日常不可或缺的软件工具,其背后的运作机制却鲜为人知。本文将深入探讨浏览器内核及其版本的演变历程,帮助读者更好地理解这一关键技术组件,揭示其内部运作的奥秘。 ... [详细]
  • 在Linux系统中避免安装MySQL的简易指南
    在Linux系统中避免安装MySQL的简易指南 ... [详细]
  • 深入解析:Synchronized 关键字在 Java 中对 int 和 Integer 对象的作用与影响
    深入探讨了 `Synchronized` 关键字在 Java 中对 `int` 和 `Integer` 对象的影响。尽管初看此题似乎简单,但其实质在于理解对象的概念。根据《Java编程思想》第二章的观点,一切皆为对象。本文详细分析了 `Synchronized` 关键字在不同数据类型上的作用机制,特别是对基本数据类型 `int` 和包装类 `Integer` 的区别处理,帮助读者深入理解 Java 中的同步机制及其在多线程环境中的应用。 ... [详细]
  • 本文详细解析了Java类加载系统的父子委托机制。在Java程序中,.java源代码文件编译后会生成对应的.class字节码文件,这些字节码文件需要通过类加载器(ClassLoader)进行加载。ClassLoader采用双亲委派模型,确保类的加载过程既高效又安全,避免了类的重复加载和潜在的安全风险。该机制在Java虚拟机中扮演着至关重要的角色,确保了类加载的一致性和可靠性。 ... [详细]
  • 在ElasticStack日志监控系统中,Logstash编码插件自5.0版本起进行了重大改进。插件被独立拆分为gem包,每个插件可以单独进行更新和维护,无需依赖Logstash的整体升级。这不仅提高了系统的灵活性和可维护性,还简化了插件的管理和部署过程。本文将详细介绍这些编码插件的功能、配置方法,并通过实际生产环境中的应用案例,展示其在日志处理和监控中的高效性和可靠性。 ... [详细]
  • 本文详细介绍了定时器输入捕捉技术的原理及其应用。通过配置定时器通道的引脚模式为输入模式,并设置相应的捕获触发条件,可以实现对外部信号的精确捕捉。该技术在实时控制系统中具有广泛的应用,如电机控制、频率测量等场景。文中还提供了具体的配置步骤和示例代码,帮助读者更好地理解和应用这一技术。 ... [详细]
  • 本文将继续探讨 JavaScript 函数式编程的高级技巧及其实际应用。通过一个具体的寻路算法示例,我们将深入分析如何利用函数式编程的思想解决复杂问题。示例中,节点之间的连线代表路径,连线上的数字表示两点间的距离。我们将详细讲解如何通过递归和高阶函数等技术实现高效的寻路算法。 ... [详细]
  • QT框架中事件循环机制及事件分发类详解
    在QT框架中,QCoreApplication类作为事件循环的核心组件,为应用程序提供了基础的事件处理机制。该类继承自QObject,负责管理和调度各种事件,确保程序能够响应用户操作和其他系统事件。通过事件循环,QCoreApplication实现了高效的事件分发和处理,使得应用程序能够保持流畅的运行状态。此外,QCoreApplication还提供了多种方法和信号槽机制,方便开发者进行事件的定制和扩展。 ... [详细]
  • Cosmos生态系统为何迅速崛起,波卡作为跨链巨头应如何应对挑战?
    Cosmos生态系统为何迅速崛起,波卡作为跨链巨头应如何应对挑战? ... [详细]
  • 本指南从零开始介绍Scala编程语言的基础知识,重点讲解了Scala解释器REPL(读取-求值-打印-循环)的使用方法。REPL是Scala开发中的重要工具,能够帮助初学者快速理解和实践Scala的基本语法和特性。通过详细的示例和练习,读者将能够熟练掌握Scala的基础概念和编程技巧。 ... [详细]
author-avatar
张小虎要努力
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有