从浏览器捕获系统声音

2024-02-13

我正在尝试构建一个 Web 应用程序,从 webrtc 调用捕获本地和远程音频,但我无法录制远程音频(使用 recordRTC)。 我想知道是否可以以某种方式捕获系统声音。

有没有办法从浏览器捕获系统声音(不仅仅是麦克风)。也许是一个扩展?


在 Chrome 中,chrome.desktopCapture https://developer.chrome.com/extensions/desktopCapture可以使用扩展 API 来捕获屏幕,这包括系统音频 https://code.google.com/p/chromium/issues/detail?id=223639 (but 仅适用于 Windows 和 Chrome 操作系统 https://chromium.googlesource.com/chromium/src/+/90e92609b6718c62c551f8aca5824dd0071c2d52/chrome/browser/media/desktop_capture_access_handler.cc#165 and 没有针对 OS X 或 Linux 的计划 https://code.google.com/p/chromium/issues/detail?id=223639#c29). E.g.

chrome.desktopCapture.chooseDesktopMedia([
    'screen', 'window' // ('tab' is not supported; use chrome.tabCapture instead)
], function(streamId) {
    navigator.webkitGetUserMedia({
        audio: {
            mandatory: {
                chromeMediaSource: 'system',
                chromeMediaSourceId: streamId
            }
        },
        video: false, // We only want audio for now.
    }, function(stream) {
        // Do what you want with this MediaStream.
    }, function(error) {
        // Handle error
    });
});

我不确定 Firefox 是否可以捕获系统声音,但至少它能够捕获一些输出(选项卡/窗口/浏览器/操作系统?)。 首先你需要访问about:config并设置media.getusermedia.audiocapture.enabled to true(这可以通过 Firefox 插件实现自动化)。然后可以如下捕获流:

navigator.mozGetUserMedia({
    audio: {
        mediaSource: 'audioCapture'
    },
    video: false, // Just being explicit, we only want audio for now
}, function(stream) {
    // Do what you want with this MediaStream.
}, function(error) {
    // Handle error
});

这是在 Firefox 42 中实现的,位于https://bugzilla.mozilla.org/show_bug.cgi?id=1156472 https://bugzilla.mozilla.org/show_bug.cgi?id=1156472

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

从浏览器捕获系统声音 的相关文章

  • Google 脚本:如何编写从驱动器中的 txt 自动导入电子表格的脚本?

    我以前从未使用过 Javascript 而且多年来我一直在尝试这样做 但没有成功 而且我找不到任何以前的人尝试过 我想直接从驱动器中的 txt 文档复制文本数据 可以手动完成此操作 但我希望每天自动完成 文本文件 Boxes Made 3
  • Response.Redirect 并不总是重定向

    我们在一个工作不一致的页面上有一个简单的 Response Redirect IIS 6 0 大多数情况下 它会正确重定向 但我们收到一些用户抱怨 他们没有重定向 而是看到 302 对象移至此处 页面 该页面显示标题信息以及正确的位置 如果
  • 禁用 Chrome 66 的自动完成功能

    在 chrome 66 中 我找不到像以前那样禁用文本输入自动完成功能的方法 我试过autocomplete off and autocomplete new password 我认为它在 Chrome 63 之前一直有效 但现在不再有效了
  • Firefox -moz-border-radius 不会裁剪图像?

    如果设置了图像的边框半径 有谁知道如何让 Firefox 裁剪角 它包含的元素可以正常工作 但我会发现丑陋的角落伸出来 有什么方法可以解决此问题 而无需将图像设置为背景图像或在将其放在网站上之前对其进行处理吗 解决方法 将图像设置为容器元素
  • 尝试设置 requestPointerLock() 时似乎出现问题

    我的代码似乎有问题 但我不知道是什么 我正在尝试调用pointerlockchange api 来禁用指针并使用鼠标作为fps 控制器 问题是总是指针锁错误被触发 我得到一个设置指针锁定时出错 信息 内部调用了该函数 文档 准备好 这是代码
  • Firefox Addon 中的 JQuery 导致多个警告

    我在 Firefox 插件中使用 jquery 但我不断收到大量警告消息 如下所示 anonymous function does not always return a value System JS WARNING resource g
  • 为什么我在 Firefox 中突然遇到“阻止加载混合活动内容”问题?

    今天早上 在将我的 Firefox 浏览器升级到最新版本 从 22 到 23 后 我的后台 网站 的一些关键功能停止工作 查看Firebug日志 报告了以下错误 Blocked loading mixed active content ht
  • 如何使用 jQuery 禁用 Firefox 对所有图像的默认拖放行为?

    Firefox 有一个恼人的行为 它默认允许用户拖放任何图像元素 如何使用 jQuery 彻底禁用此默认行为 以下将在 Firefox 3 及更高版本中执行此操作 document on dragstart function return
  • 如何在mozilla firefox上获得线性渐变效果

    我正在使用下面的CSS来获得线性渐变效果 但它在mozilla firefox中不起作用 你们中的任何人都知道它吗 请帮助在firefox中也获得相同的效果 CSS 是 background image webkit linear grad
  • Chrome 通知/权限栏 - 检测是否可见

    当 Flash 请求访问相机或麦克风时 Chrome 会显示以下通知栏 有没有 JavaScript 或 AS3 方法可以检测它是否可见 我知道你问这个问题已经很长时间了 但我们终于找到了一个我想分享的解决方法 ActionScript C
  • 从 Google Chrome v20 中的日期输入中删除背景箭头

    自 Google Chrome v20 起 已添加新的日历来输入日期 问题是我正在使用 javascript 创建自己的日历 并且我的图标已经位于与默认镶边箭头相同的位置 我想知道如何删除箭头背景 据我所知 您目前无法禁用它 这里正在进行一
  • Selenium 3 Firefox .click() 不起作用

    自从我升级到最新的 Selenium 版本后 我的 Firefox 驱动程序无法正常工作 未能通过搜索 Google Stack 找到答案 我希望这里有人能找到答案 我已经构建了一个页面对象模型 用于登录网页 单击管理站点并填写用户名 密码
  • 浏览器特定的 CSS 属性

    在哪里可以找到完整的 浏览器特定 css 属性 参考 我的意思是一些属性 例如 moz border radius这仅适用于 Firefox 或 webkit min device pixel ratio 这些示例仅适用于指定的 Web 浏
  • 如何在 Chrome 中实现抓取光标图标?

    我知道可以在 Chrome 中使用抓取光标图标 当然是在 Gmail 中 但我不知道如何在我的代码中实现它 我已经尝试过 在CSS中 body cursor grab body cursor webkit grab body cursor
  • History.replaceState 仍然向“浏览历史记录”添加条目

    具体来说 调用以下代码片段 history replaceState undefined undefined value 正确地不会影响当前页面的后退按钮行为 但是will在 浏览历史记录 页面添加一个条目 这是我不想要的 下图是 Chro
  • Chrome Prerender 功能每次都会被取消

    我正在尝试 Chrome 中的预渲染功能 但是当我检查网络时 我可以看到任何链接的请求都被取消 我使用以下语法 我尝试了现场演示http prerender test appspot com http prerender test apps
  • 如何清除chrome性能条目或绕过其数量限制?

    我使用 Google Chrome 来分析一些使用 Javascript 动态加载脚本和其他资源的网页的性能 我用performance getEntries 方法 但我注意到 Chrome 只记录前 150 个资源 我找不到任何方法来获取
  • 为什么 Firefox 会忽略缓存标头并在刷新时重新验证?

    我有一些不可变的图像资源 可以永久缓存 Chrome 似乎尊重我的响应标头 并且不会重新验证资源 以下是 Chrome 中其中一项资源的示例 正如你所看到的 我包括cache control public max age expires e
  • 绑定 popstate 事件不起作用

    我尝试在浏览器的控制台中输入以下代码 window onpopstate function alert 1 然后单击后退按钮 没有显示任何警报 难道我做错了什么 或者是否不允许将 popstate 事件绑定到控制台的页面 使用 Chrome
  • CSS 中的 Data-URI SVG 背景在 Firefox 中不起作用

    好的 这就是我想做的 我的 css 文件中有这段代码 form row textfield hover textfield m hover background image url data image svg xml base64 PHN

随机推荐

  • PostgreSQL:文本到 JSONB - 总大小超过最大值

    我已在文本字段中导入 JSON 数组 并希望将其转换为 JSONB 我收到以下错误 SQL错误 54000 错误 jsonb数组元素的总大小超过最大值268435455字节 错误 jsonb 数组元素的总大小超过最大值 268435455
  • 激活负颜色后图形奇怪地滑动

    我正在使用 Highcharts 在移动图表中显示一些实时变化的数据 每秒添加一个点 就像更新 highcharts 网站上的样条线示例 http www highcharts com demo dynamic update 为了清楚地看到
  • mysql 使用 unix_timestamp 变量进行分区

    鉴于这种 delimiter create procedure setup begin declare d datetime set d rounddate now create table s time req id int not nu
  • Django 比较模型实例是否相等

    据我所知 在单例情况下 您可以执行以下操作 spam eggs and if spam and eggs是具有所有相同属性值的同一类的实例 它将返回True 在 Django 模型中 这是很自然的 因为模型的两个单独实例永远不会相同 除非它
  • char** 与 char* c[] 访问字符串数组

    为什么我不能将 char 指向 C 字符串数组 int main int argc char argv char c1 Hey Hello printf s c1 1 works fine vs int main int argc char
  • 使用 PHP SplFileObject 和 READ_CSV 标志时如何删除多余的行?

    使用 PHP 迭代 csv 文件时Spl文件对象 http php net manual en class splfileobject php和READ CSV标记我得到一个额外的行null价值 有没有办法自动删除这一行 file new
  • 如何在作业后脚本中使用 JUnit XML 格式获取 Jenkins 中运行的测试数量?

    有没有什么方法可以获取 Jenkins 在 Post Job 脚本中执行 或通过 的测试数量 例如 将此号码发送到 Github Status API 我没有看到任何方法可以直接访问这些号码Publish JUnit test result
  • 如何在MySQL中实现多对多的层次结构

    这是我的问题的后续内容 如何在MySQL中记录记录的顺序集合 https stackoverflow com questions 9610942 how to record sequential collections of records
  • Android ListView 禁用标题视图上的点击和上下文菜单?

    我使用设置标题视图getListView addHeaderView view 目前 在点击和上下文菜单方面 它的处理方式与所有其他列表行相同 如何使标题视图更像标题 或者 我怎样才能在上面添加一些内容ListView这不属于ListVie
  • 没有 scipy 的 numpy 中的批量卷积 2d?

    我有一批b m x n图像存储在数组中x 和一个卷积滤波器f大小的p x q我想应用于每个图像 然后使用总和池并存储在数组中y 在批次中 即all np allclose y i j k x i j j p k k q f sum for
  • 插入新实例时不执行实体框架核心延迟加载

    我有两节课 Campaign它引用了一个类客户 public class Campaign Key Required public int id get set public int CustomerId get set ForeignKe
  • 碰撞时阻止移动

    我正在 XNA 中开发 2d 游戏 目前正在上物理课 我当前的任务是在一个物体与另一个物体碰撞时阻止它 我让我的游戏在两个物体发生碰撞时调用此函数 public void BlockMovement gameObject target yo
  • 单击日历时使用 fullcalendar 创建事件(rails)

    当用户单击日历的任何部分时 如何创建事件 然后将其作为新事件存储在数据库中 我知道你必须使用 select function start end allDay 来获取 开始 和 结束 时间 但是当我得到这些数据后 如何将其传递到数据库呢 T
  • Rails 控制台添加 nil 而不是值

    目前 当尝试通过 Rails 控制台或种子数据将新用户添加到我的用户表时 一切都为零 在我的种子文件中 我正在运行 u1 User create from email gt email protected cdn cgi l email p
  • 捕获正则表达式匹配以从查找表中进行替换

    我正在 PowerShell 中编写一个语言解释器 该语言是 PILOT 对于那些可能感兴趣的人 并且我已经达到了实现变量替换的地步 变量名由以下任一组成 or a 后跟该集中最多十个字符 A Za z0 9 但是 如果变量名带有前缀 它应
  • Codeigniter 中的注销功能

    我开始在我的项目中使用 codeigniter 我的网站有用户身份验证系统 我看过 nettuts 的视频以获取登录信息 我很困惑为什么注销不能正常工作 我的登录控制器中有以下注销功能 function logout this gt ses
  • Python 在 Windows 8.1 64 位上错误地检测到 32 位系统

    PS C Users gt C Python27 python exe Python 2 7 15 v2 7 15 ca079a3ea3 Apr 30 2018 16 30 26 MSC v 1500 64 bit AMD64 on win
  • 单表内SQL时间差

    我有一个包含用户登录数据的 MySQL 表 user date type 1 2011 01 05 08 00 00 login 1 2011 01 06 09 00 00 login 1 2011 01 06 10 00 00 logou
  • RankNTypes 与类型别名混淆[重复]

    这个问题在这里已经有答案了 我试图了解类型约束如何与类型别名一起使用 首先 假设我有下一个类型别名 type NumList a Num a gt a 我有下一个功能 addFirst a gt NumList a gt NumList a
  • 从浏览器捕获系统声音

    我正在尝试构建一个 Web 应用程序 从 webrtc 调用捕获本地和远程音频 但我无法录制远程音频 使用 recordRTC 我想知道是否可以以某种方式捕获系统声音 有没有办法从浏览器捕获系统声音 不仅仅是麦克风 也许是一个扩展 在 Ch