iOS 的 AudioContext.createMediaStreamSource 替代品?

2024-02-10

我使用 Cordova 和 Web Audio API 开发了一个应用程序,允许用户插入耳机,将手机按在心脏上,然后听到自己的心跳。

它通过使用音频过滤器节点来实现这一点。

 //Setup userMedia
context = new (window.AudioContext||window.webkitAudioContext);
navigator.getUserMedia = (navigator.getUserMedia ||
                          navigator.webkitGetUserMedia ||
                          navigator.mozGetUserMedia ||
                          navigator.msGetUserMedia);
navigator.getUserMedia(
                        {audio:true},
                        userMediaSuccess,
                        function(e) {
                            alert("error2 " + e.message);
                        });

function userMediaSuccess(stream)
{   
    //set microphone as input
    input = context.createMediaStreamSource(stream);

    //amplify the incoming sounds
    volume = context.createGain();      
    volume.gain.value = 10;

    //filter out sounds below 25Hz
    lowPass = context.createBiquadFilter(); 
    lowPass.type = 'lowpass';
    lowPass.frequency.value = 25;

    //filter out sounds above 425Hz
    highPass = context.createBiquadFilter(); 
    highPass.type = 'highpass';
    highPass.frequency.value = 425;

    //apply the filters and amplification to microphone input
    input.connect(lowPass);
    input.connect(highPass);
    input.connect(volume);

    //send the result of these filters to the phones speakers
    highPass.connect(context.destination);
    lowPass.connect(context.destination);       
    volume.connect(context.destination);


}

当我部署到 Android 时,它运行良好,但似乎大多数功能在 iOS 移动浏览器上不可用。

我设法使用 getUserMedia 函数iosRTC 插件 https://github.com/eface2face/cordova-plugin-iosrtc,但 createMediaStreamSource 仍然“不是一个函数”。

因此,我正在寻找 Web Audio API 的替代方案,可以过滤掉频率,或者如果有任何我可以使用的插件,那将是完美的。


在 ios 网络上没有办法做到这一点。您需要一个本机应用程序,因为 Apple 不支持 safari 中的音频输入。

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

iOS 的 AudioContext.createMediaStreamSource 替代品? 的相关文章

  • 应用程序在第二次运行 nsnull 计数的循环时崩溃

    我有一个循环 第一次运行正常 但第二次循环时我得到 NSNull count unrecognized selector sent to instance 0x3a094a70 Terminating app due to uncaught
  • 使用prefersLargeTitles 和 UITableView 平滑滚动

    我在使用时遇到了滚动问题prefersLargeTitles并添加了UITableView 如果我设置prefersLargeTitles在导航控制器中 其根是UITableViewController一切都很好 导航大标题的滚动方式与我们
  • iOS UITableViewCell 配件在左侧?

    对于我的应用程序 我想要一些可以同时具有复选标记和详细信息披露按钮的单元格 也就是说 我希望它们看起来与 iOS 设置中的 Wi Fi 网络选择一模一样 左侧的复选标记 中间的内容 右侧的详细信息披露按钮 有没有正确的方法来做到这一点 或者
  • 自动布局:Y 位置为两个值中的最大值

    我有一个按钮 play Button 和两个 UIView myView 1 和 myView 2 它们的位置在执行过程中可能会发生变化 我希望 playButton 的顶部比 UIView 1 的底部或 UIView 2 的底部低 10
  • 自动调整大小完成后如何获取帧大小

    我想知道 如何以及何时 viewDidLoad viewWillAppear viewDidAppear 可以获得自动调整大小以适合其父视图的 UIViews 框架大小 从你的问题中不清楚你为什么想要它 但我想这是为了布局你的子视图 幸运的
  • Firebase 连接管理器应仅返回一个结果

    我正在关注位于以下位置的文档 https www firebase com docs ios guide offline capability html section connection state https www firebase
  • 使用 Push Transition 效果更改 RootViewcontroller

    在我的iOS应用程序中 我需要更改应用程序之间窗口的rootviewController 因此 当我动态更改我的rootviewcontroller时 它会在更改之前轻拂视图 但我想要的是在更改rootviewcontroller时提供平滑
  • iOS 4.2.1 丢失文件?

    这是我第一次使用最新的 xcode 3 2 5 和新的 iOS 4 2 1 当我在设备上运行应用程序时 我收到以下运行时错误 无法读取 Developer Platforms iPhoneOS platform DeviceSupport
  • 尝试从独立的 Apple Watch 应用发出网络请求

    当应用程序是独立应用程序时 Apple Watch 是否无法进行网络通话 即使手表已连接到 iPhone 我正在使用新的独立应用程序目标 它没有附带可以发出 WatchConnectivity 请求的配对 iOS 应用程序 我十有八九收到
  • iOS 内存警告

    我正在尝试使用从 Parse 数据库下载的图像填充集合视图 但我收到内存警告 然后偶尔崩溃 有谁知道其他应用程序如何设法呈现这么多图像而不崩溃 有人可以告诉我如何优化我已有的东西吗 这是所有相关代码 https gist github co
  • 切换到工作区并在 Xcode 中添加 CocoaPods 后提交 git 吗?

    我刚刚在 Xcode 5 中将 CocoaPods 添加到我当前的项目中 当然 CocoaPods 创建了一个工作区 并且我已在 Xcode 中启动了该工作区 我在工作区中看到了我的项目和 Pods 项目 我的项目从第一天起就处于源代码控制
  • 在 Android 2.2 上运行 HelloCordova 时找不到类“android.webkit.WebResourceResponse”

    我尝试按照本教程进行操作 http docs phonegap com en 2 7 0 guide getting started android index md html Getting 20 Started 20with 20 An
  • swift 中的负数模

    负数模如何在 swift 中工作 当我执行 1 3 时 它给出 1 但余数是 2 其中有什么问题 雨燕余数运算符 计算余数 整数除法 a b a a b b where 是截断整数除法 在你的情况下 1 3 1 1 3 3 1 0 3 1
  • iPad 3 中配备 Xcode 4.2 和 Retina 的 iOS 5.1

    我有一台装有 Mac OS X Snow Leopard 的 Mac 我可以添加 iOS 5 1 吗 使用 iPad 3 的新分辨率 我们将如何处理图像 因为如果该应用程序将在 iPhone 3GS 4 和 iPad 3 中运行 我认为我们
  • 打印附加结构(swift 4)

    我有三个 textifled 用于将数据附加到结构中 如何打印我附加的内容 现在我收到一条错误消息 import UIKit class ViewController UIViewController IBOutlet var c UITe
  • UIImage:如何获取网站选项卡图标

    我正在开发一个 RSS 阅读器 我需要获取每个提要的图标 例如 如果我的提要是 google com 我想获取 G 图标并将其放入 UIImage 或其他内容中 关于如何实现这一目标有什么想法吗 最简单的方法是使用 Google NSStr
  • Cognito/IAM 策略和 S3 获取对象

    我正在尝试将 S3 和 Cognito 集成到我的 iOS 应用程序中 但到目前为止尚未成功 我相信该错误与我针对 Auth 和 Unauth 用户的 IAM 策略有关 所以这是我的政策 Version 2012 10 17 Stateme
  • 如何在 EKRecurrenceRule 中设置一周中某一天的数组?

    我想在用户选择的特定日期每周添加事件 可以是一个或多个 也可以是一整天 我将用户选择的日期值存储在模型类变量中 但是 当我添加事件并选择日期时 假设今天是星期一 我选择星期二和星期三并保存 然后我查看周一和周三添加的 iPhone 日历 我
  • Visual Studio Cordova 模板/AngularJSTodo 示例项目调试问题

    全新安装 Visual studio 2013 update 4 和 Cordova 工具集 尝试启动基本 cordova 模板或 AngularJsTodo 示例项目的调试最终会在 js 文件末尾中断 看链接 我可以单击 继续 并进入 C
  • Swift 中 UIImages 的淡入淡出动画

    我有一组图像 我希望它们在登录屏幕的背景中淡出 我无法在 swift 中找到任何可以做到这一点的东西 有什么办法我可以做到吗 这是我当前的代码 override func viewDidLoad super viewDidLoad star

随机推荐

  • 按日期对 pandas df 中的组进行排序和排名

    从以下类型的数据框中 我希望能够对id日期字段 df pd DataFrame id 1 1 2 3 3 4 5 6 6 6 7 7 value 01 4 2 3 11 21 4 01 3 5 8 9 date 10 01 2017 15
  • 代码挑战:Bash 提示路径缩短器

    我为 bash 实现了一个提示路径缩短器 将其包含在 PS1 环境变量中 它将工作目录缩短为更紧凑但仍具有描述性的目录 我很好奇可能存在什么其他想法 这是挑战 创建 bash 函数 dir chomp可以像这样包含到 PS1 中 插入换行符
  • 如何使用 for 循环迭代子级

    我想迭代 jQuery 的所有子级 children 返回值 像这样 var childs element children for var i 1 i lt childs length 1 i childs foo 我必须在第 3 行写什
  • 创建新的 OneNote 笔记本 错误请求

    我想使用 Graph api 创建一个新的 OneNote 笔记本 我正在关注这份文件 使用 Graph Explorer 我无损地创建了它 但我想从不同的环境中实现相同的目标 例如 Postman 我通过 client credentia
  • 更改 Derby 数据库密码

    我已经在 Glassfish Netbeans 中设置了 Derby DB 密码 我还选中了记住我复选框 现在我无法再更改密码了 要更改密码您只需执行 call SYSCS UTIL SYSCS SET DATABASE PROPERTY
  • CakePHP 3 和表单验证错误

    我使用 cakePHP 3 并且我有一个使用 Form gt input 的登录表单 如果我故意犯了一个错误 这个错误不会出现在表单字段下 它没有出现在任何地方 我的代码是这样的 newUser this gt Users gt newEn
  • 如何将 NULL 值更改为空字符串?

    我有一个 SSIS 包 它将数据从可为空的列复制到同一列不可为空的表 使源不可为空涉及繁文缛节 因此现在我需要一种方法将空值更改为空字符串 我从 ADO Net 源获取数据 而不是从查询中获取数据 在查询中我可以添加空值检查 如果需要 我可
  • 如何创建一个播放 mp3 google tts 的按钮

    我是新来的 但我希望你能帮助我 我正在尝试创建一个按钮来播放谷歌生成的文本到语音 mp3 我正在创建一个翻译器 所以 我想要做的是像谷歌翻译这样的事情 以某种方式 我尝试过使用 javascript 和 actionscript 但无法使其
  • 使用 pip 安装时出错

    尝试卸载用 pip 安装的软件包 我卸载了一些 现在 pip 不起作用 我尝试安装熊猫 sudo pip install pandas 这是错误 Requirement already satisfied use upgrade to up
  • 同步服务运行后刷新 FragmentActivity 中的片段

    有没有人有任何优雅的解决方案来刷新Views in Fragments in a FragmentActivity s ViewPager同步后Service from a SyncAdapter runs 我试过打电话notifyData
  • IndexAxisValueFormatter 未按预期工作

    我正在使用MPAndroid图表 https github com PhilJay MPAndroidChart创建条形图 我的配置
  • Magento:如何获取属于属性集的属性?

    有了属性集 如何获取它包含的属性列表 或者更好的是 仅获取不属于默认属性集的自定义属性 属性集本身可以通过多种方式获取 例如 entityTypeId Mage getModel eav entity gt setType catalog
  • `const_iterator` 真的需要是与 `iterator` 不同的类吗?

    假设我定义了某种容器A struct A iterator begin return iterator this 0 const iterator cbegin const return iterator this last 假设现在我想声
  • Lisp 中无重复数字的随机列表

    我有这个函数可以创建一个包含其他问题中的初始元素的列表Lisp 中带有初始元素的列表从 99 开始到 0 https stackoverflow com questions 59039638 list with initial elemen
  • 尝试在 azure 存储帐户/Blob 上设置 cors 时出现无尽错误

    我正在尝试在 azure 存储 blob 帐户上设置 cors 我已向该帐户添加了 CDN 原因是这样我可以从那里提供网络字体并获取缓存 我已经安装了 nuget 的最新软件 已成功将 Microsoft Data Services Cli
  • 创建具有多个页面的 Apex 表单

    我正在尝试制作一个包含多个 页面 的顶点表单 以便我可以实现漂亮的布局 例如 第 1 页 个人详细信息 gt gt 第 2 页 职业 gt gt 第 3 页 职业经历 gt gt 提交 有没有一种方法可以在不一次提交一页的情况下执行此操作
  • 读取 Storm 集群中的 AWS SQS 队列时,导致这些 ParseError 异常的原因是什么

    我正在使用 Storm 0 8 1 从 Amazon SQS 队列中读取传入消息 并且在执行此操作时遇到一致的异常 2013 12 02 02 21 38 executor ERROR java lang RuntimeException
  • jetty升级到9后无法运行项目

    我升级到 jetty 9 并在尝试运行该项目时出现以下错误 WARNING Error injecting org eclipse jetty maven plugin JettyRunMojo java lang TypeNotPrese
  • count(distinct) over(按...范围函数分区)

    我想计算不同的yyyydd超过mm 日期 2 天 但是 distinct 函数不能与 over 一起使用 如果我删除不同的 它会给我总计数yyyydd but yyyydd可以有很多重复的 这就是为什么我想添加不同的 这有点类似于count
  • iOS 的 AudioContext.createMediaStreamSource 替代品?

    我使用 Cordova 和 Web Audio API 开发了一个应用程序 允许用户插入耳机 将手机按在心脏上 然后听到自己的心跳 它通过使用音频过滤器节点来实现这一点 Setup userMedia context new window