AudioKit:我可以在不调用 AudioKit.stop() 的情况下禁用 AKMicrophone 吗?

2023-12-30

我有一个具有两个功能的应用程序。一个扮演一个AKMetronome并允许当应用程序不在前台时进行后台播放。另一个是调谐器功能,它使用AKMicrophone,仅当应用程序位于前台时才需要处于活动状态。这些功能可以同时使用(调谐器处于活动状态时节拍器指示灯闪烁)。

当我按下主页按钮时,节拍器会继续播放(如预期)。但调谐器的有源麦克风也会导致鲜红色的“录音”式酒吧 https://i.stack.imgur.com/BhRBU.jpg在所有其他应用程序中位于设备顶部。不过,当应用程序未打开时,我不需要调谐器来运行。

我如何禁用AKMicrophone节点,以便该栏不会显示,同时还保留AKMetronome节点播放不间断?

我尝试了以下方法,但都没有成功:

  • Calling AudioKit.stop()在应用程序委托中applicationWillResignActive()方法。这会消除录音栏,但会停止节拍器。
  • Calling stop() on the AKMicrophone期间的节点applicationWillResignActive()。这不会删除录音栏。
  • Calling stop() and disconnectOutput() on the AKMicrophone期间的节点applicationWillResignActive()。这也不会删除录音栏。

我怀疑我可能需要关闭整个引擎(即AudioKit.stop()),从链中删除麦克风节点,并重建并重新启动引擎,所有这些都在applicationWillResignActive方法。但这样会打乱节奏AKMetronome,所以我希望事情不会发展到这样的地步。


我认为你应该使用 AudioKit 作为节拍器,并使用 AudioKit 中名为 AKMicrophoneTracker 的部分作为调音器。

http://audiokit.io/docs/Classes/AKMicrophoneTracker.html http://audiokit.io/docs/Classes/AKMicrophoneTracker.html https://github.com/AudioKit/AudioKit/blob/master/AudioKit/Common/Internals/Microphone%20Tracker/AKMicrophoneTracker.swift https://github.com/AudioKit/AudioKit/blob/master/AudioKit/Common/Internals/Microphone%20Tracker/AKMicrophoneTracker.swift

AudioKit 使用 AVAudioEngine 作为其信号流,而跟踪器实际上是基于 EZAudio 的完全独立的信号流。我相信两者可以独立使用。

您当前跟踪麦克风的方式可能类似于以下内容:http://audiokit.io/playgrounds/Analysis/Tracking%20Microphone%20Input/ http://audiokit.io/playgrounds/Analysis/Tracking%20Microphone%20Input/

你会想让它更像这样:

let tracker = AKMicrophoneTracker()
tracker.start()

//: User Interface
import AudioKitUI

class LiveView: AKLiveViewController {

    var trackedAmplitudeSlider: AKSlider?
    var trackedFrequencySlider: AKSlider?

    override func viewDidLoad() {

        AKPlaygroundLoop(every: 0.1) {
            self.trackedAmplitudeSlider?.value = tracker.amplitude
            self.trackedFrequencySlider?.value = tracker.frequency
        }

        addTitle("Tracking With Microphone Tracker")

        trackedAmplitudeSlider = AKSlider(property: "Tracked Amplitude", range: 0 ... 0.8) { _ in
            // Do nothing, just for display
        }
        addView(trackedAmplitudeSlider)

        trackedFrequencySlider = AKSlider(property: "Tracked Frequency",
                                          range: 0 ... 2_400,
                                          format: "%0.3f Hz"
        ) { _ in
            // Do nothing, just for display
        }
        addView(trackedFrequencySlider)

    }
}

HTH.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

AudioKit:我可以在不调用 AudioKit.stop() 的情况下禁用 AKMicrophone 吗? 的相关文章

随机推荐

  • 使用 iTextSharp 将 pdf 显示到网页?

    我正在使用 iTextSharp 生成 pdf 我想将其显示在网页上 并让用户从在线 pdf 查看器中保存它 动态pdf有一个drawtoweb 方法 但它不是免费使用的 而且我无法使用iTextSharp找到相同的功能 我怎样才能显示pd
  • 使用原型时的 Javascript 继承问题 - 实例被覆盖:(

    我是 JavaScript 编程新手 我对继承有一些噩梦 我正在为 Appcelerator Titanium 编写一些代码 并且我希望继承一个名为 Slide2D 的基类 所以我在Slide2D的原型中放置了一些函数 这些通常不会被覆盖
  • AngularJS then() 的行为与 success()-error() 不同[重复]

    这个问题在这里已经有答案了 As the success and error AngularJS 中不推荐使用函数 我正在更新我的代码 将它们替换为then 现在根据我的理解 这两段代码的行为应该是相同的 http get some par
  • 乔达时间 - 添加工作日至今

    是否可以将工作日添加到 joda 时间 例如 如果当前日期是 01 03 星期五 则 date 1 应返回 04 03 星期一 而不是 02 03 据我所知 Joda Time 中没有内置方法可以自动为您执行此操作 但是 您可以编写自己的方
  • __ attribute __((extion(“ name”)))用法?

    我已经运行过使用的代码 attribute section name 据我所知 对于 gcc 编译器 这允许您告诉链接器将创建的对象放置在特定部分 名称 在链接器文件中声明 名称 绝对地址 这样做而不是仅仅使用 data 部分有什么意义 有
  • 如何用jquery设置边距?

    我正在这样做 var sId id toString var index sId substring 3 var mrg index 221 var el id el css margin left mrg px and el css ma
  • 使用 Graph API 或 FQL 将所有照片包含在单个 Facebook Feed 帖子中?

    我正在使用 Facebook 图形 API 来获取我最近的帖子并通过 graph facebook com me feed 提要项目 我遇到的问题是 当提要对象是包含多张照片的帖子时 结果中的数据仅包含其中一张照片的信息 并且我似乎无法找到
  • iPhone:我需要实现 UIScrollViewDelegate (或任何委托)的所有方法吗

    假设我将 UIViewController 设为 UIScrollViewDelegate 我是否需要实现委托的所有方法 或者我可以只实现我关心的 1 个方法吗 If you cmd click在 Xcode 中 你声明你实现了该协议
  • UIScrollView 在 iPhone/iPad 上旋转时禁用滚动

    我使用 UIScrollView 和其中的图像作为每页分页一个图像 我在旋转时遇到问题iPhone http en wikipedia org wiki IPhone 当我旋转iPhone时 scrollViewDidScroll 滚动视图
  • requests.get(url) 未返回此特定 url

    我正在尝试使用 requests get url text 从该网站获取 HTML 但是 当使用此特定网址调用 requests get url 时 无论我等待多久 它都不会返回 这适用于其他网址 但这个网址给我带来了麻烦 代码如下 fro
  • @DirtiesContext 不适用于 @Nested 测试

    经过几个小时的谷歌研究后我仍然不知道如何使用 DirtiesContext with Nested类 假设以下集成测试类 ExtendWith SpringExtension class SpringBootTest AutoConfigu
  • VS 2019 更新后运行 azure 函数时出现调试配置文件不存在错误

    更新到版本 16 10 0 后无法从 Visual Studio 2019 调试 azure 函数 出现以下错误 此问题的问题是未正确安装引用的 Azure Function Tools 版本 因此 当它被部分下载时 它甚至不会尝试重新安装
  • 如何告诉CRAN自动安装包依赖项?

    我在 R 中开发了一个包 当我在本地计算机中检查并构建它时 它可以正常工作 但是当我在 CRAN 中尝试时 出现包依赖错误 我的包依赖于其他包的两个功能 如果我在下面列出其他包description using Depends or imp
  • JS中如何将字符串类型的十六进制转换为数字?

    例如 假设我有一个十六进制 0xdc 如何转换这个十六进制string转为十六进制Number输入JS 从字面上看只是丢失了引号 这Number 构造函数和parseInt 只是将其转换为 0 到 255 之间的整数 我只是想要0xdc E
  • 有效统计 MongoDB 中出现的百分比

    所以 我正在修改 MongoDB 并且试图获得count 聚合查询可以适当扩展 以便我可以轻松计算文档中某些值在整个集合中出现的百分比 我有一个结构如下的文档 foo bar moo cow values alpha true beta f
  • 在数据库中更改后,Prestashop 重定向到旧域

    我正在尝试创建 prestashop 1 6 电子商店的副本 用于从domain com 到 dev domain com 的开发目的 我遵循的过程是 禁用缓存和编译 将文件从domain com复制到dev domain com 从dom
  • 如何加速向量叉积计算

    嗨 我是这里的新手 正在尝试使用 numpy 进行一些计算 我在一次特定的计算中经历了很长的时间 并且无法找到任何更快的方法来实现同样的事情 基本上它是射线三角形相交算法的一部分 我需要计算两个不同大小的矩阵的所有向量乘积 我使用的代码是
  • aws ecs 优化的 AMI 中的私有 docker 注册表身份验证不成功

    我正在编写一个 terraform 脚本来创建 ECS 自动缩放集群 我创建了一个集群并向其中添加了 ec2 容器实例 我的任务定义文件包含来自私有 docker 存储库的图像 我浏览了 aws 官方文档并找到了一个页面私人登记认证 htt
  • 通过 Geodjango 中的几何交集关联两个模型

    在 GeoDjango 中 两个有两个包含几何字段的模型 from django contrib gis db import models class Country models Model territory models MultiP
  • AudioKit:我可以在不调用 AudioKit.stop() 的情况下禁用 AKMicrophone 吗?

    我有一个具有两个功能的应用程序 一个扮演一个AKMetronome并允许当应用程序不在前台时进行后台播放 另一个是调谐器功能 它使用AKMicrophone 仅当应用程序位于前台时才需要处于活动状态 这些功能可以同时使用 调谐器处于活动状态