是否可以直接获取 Puppeteer 音频源和/或输入音频到 Puppeteer?

2024-05-23

我想将 WAV 或 MP3 输入到 puppeteer 作为麦克风,但是在无头模式下应用程序被静音,所以我想知道是否有一种方法可以直接将输入输入到浏览器中。

我还想知道是否可以在无头状态下从浏览器获取音频源,和/或录制音频并将其放在文件夹中。


我最终使用了这个解决方案。首先,我启用了 Chromium 的一些选项:

const browser = await puppeteer.launch({
  args: [
    '--use-fake-ui-for-media-stream',
  ],
  ignoreDefaultArgs: ['--mute-audio'],
});

如果 Chromium 已打开,请记住将其关闭。

我创建了一个<audio>元素与src设置为我要输入的文件。我也超越了navigator.mediaDevices.getUserMedia,这样它就会返回一个Promise使用与音频文件相同的流,而不是来自麦克风。

const page = await browser.newPage();
await page.goto('http://example.com', {waitUntil: 'load'});
await page.evaluate(() => {
  var audio = document.createElement("audio");
  audio.setAttribute("src", "http://example.com/example.mp3");
  audio.setAttribute("crossorigin", "anonymous");
  audio.setAttribute("controls", "");
  audio.onplay = function() {
    var stream = audio.captureStream();
    navigator.mediaDevices.getUserMedia = async function() {
       return stream;
    };
  });
  document.querySelector("body").appendChild(audio);
});

现在每当网站的代码调用时navigator.mediaDevices.getUserMedia,它将从文件中获取音频流。 (您需要先确保音频正在播放。)

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

是否可以直接获取 Puppeteer 音频源和/或输入音频到 Puppeteer? 的相关文章

  • req.body 为空 Express js

    我花了几个小时试图找出为什么 req body 是空的 我在 stackoverflow 上到处查看并尝试了所有方法 但没有运气 Express js POST req body 空 https stackoverflow com ques
  • 为 Moodle 创建 LTI 提供程序

    我正在尝试为 Moodle 创建一个 LTI 提供程序 我需要从 Moodle 获得的信息 课程名称 学生和教师 以及启用单点登录 获取会话 令牌 cookie 我做了一项研究 发现 Moodle 3 支持 LTI v2 这基本上是通过 R
  • Google Chrome 不设置从 NodeJS/Express 服务器发送的 cookie

    我正在尝试在我的后端 带有express session的Express Node Mongo 中设置经过身份验证的端点 并且可以在响应标头中向客户端 Chrome版本53 0 2785 143 发送cookie 但是当我在开发控制台下 应
  • fs.statSync 与缓冲区“错误:路径必须是没有空字节的字符串”

    我已经读入这样的文件缓冲区 let imageBuffer try imageBuffer fs readFileSync some path to image jpg catch e console log error reading i
  • Mongoose 查询:删除“_id”属性,在结果中保留虚拟属性“id”

    我正在运行 Express js 应用程序 并且有以下设置 模型 js var schemaOptions toJSON virtuals true toObject virtuals true var modelSchema new mo
  • 调试firebase云函数

    如何使用 Visual Studio 代码进行调试firebase 数据库 trigger功能 我尝试了模拟器 但是当我调用它时出现错误 functions debug myMethod C functions functions gt f
  • 使用 knex.js 查询多个表

    我想渲染Expres js and knex js两个表仅使用一个 get 函数 以便在一个 HTML 模板中使用两个表中的数据 当我只查询一张表 学校或学生 但我不知道如何处理两张表时 它会起作用 有什么建议吗 app get schoo
  • Node.js:如何将流读入缓冲区?

    我编写了一个非常简单的函数 从给定的 URL 下载图像 调整其大小并上传到 S3 使用 gm 和 knox 我不知道我是否正确地将流读取到缓冲区 一切正常 但这是正确的方法吗 另外 我想了解有关事件循环的一些信息 我如何知道函数的一次调用不
  • 是否可以为 NodeJS 应用程序设置基本 URL?

    我希望能够在同一域下托管多个 NodeJS 应用程序 而不使用子域 例如 google com reader 而不是 images google com 问题是我总是输入网址的第一部分 例如Express NodeJS 中的 reader
  • 在spawn中使用两个命令(使用管道|)

    我正在内存中将文档转换为 pdf unoconv 并在终端中打印 pdftotext unoconv f pdf stdout sample doc pdftotext layout enc UTF 8 out txt 工作中 现在我想使用
  • node.js 和 npm 在 Windows 7 64 位旗舰版中没有网络访问权限

    注意 对于遇到此问题的其他人 我尝试了所有建议和所有研究 最后我格式化了硬盘并重新安装了windows 尽管从一开始就是全新安装 但某些 Windows 安装似乎根本无法与 Node 一起使用 据我所知 这是唯一的解决方案 首先 我已经发现
  • node npm run watch 退出状态 3221225725

    我必须格式化我的驱动器 但我的一个项目不再工作 所有其他相同类型的项目都运行良好 这是 Laravel Vue JS 问题是我无法运行 npm run watch dev 或 production 他们都给出了错误 拉拉维尔 5 7 npm
  • 访问 Node.js 全局模块

    npm 文档是这样说的 如果您正在安装想要在程序中使用的东西 请使用 require whatever 然后将其安装在本地项目的根目录下 如果您要安装要在 shell 中使用的东西 请在命令行或 某些东西 全局安装它 以便它的二进制文件最终
  • 如何模拟 typeorm 连接

    在集成测试中 我使用以下代码片段来创建连接 import Connection createConnection from typeorm ts ignore import options from ormconfig js export
  • Node + Express .post 路由抛出错误。预期回调,获得对象

    我目前正在开发一个使用 Express Node 的应用程序 我最近添加了一个新的 post路线到app js文件 使用以下语法 app post api posts saveComment posts saveComment posts上
  • 节点检查器显示对象“无属性”

    我在调试场景中相当陌生 尤其是节点检查器 安装节点检查器后 我使用 debug 参数启动了简单的节点应用程序 并且能够在 localhost 8080 debug port 5858 处看到调试视图 当我让应用程序在此断点处停止时 rout
  • 未加载测试环境的节点 dotenv 文件

    我有两个 dotenv 文件 一个用于开发 另一个用于测试 const dotenv require dotenv if process env process env NODE ENV dotenv config path env pro
  • 如何模拟“焦点”和“打字”事件

    尝试模拟 onfocus 和打字事件 但它不起作用 Sub Login MyLogin MyPass Dim IEapp As InternetExplorer Dim IeDoc As Object Dim ieTable As Obje
  • Mongodb更新很多

    我正在使用express js 和 npm 模块 mongodb 进行开发 并以 mongodb 作为数据库 我有两个集合 即 用户 和 活动 一个用户可能有数千个活动 首先 我将用户的 id 姓名和图片 url 存储到 关系的活动文件 请
  • Child_process 处理带有回车符 (\r) 的 STDOUT 流

    我正在编写一个简单的应用程序 它允许工作中的内部系统请求从远程服务器到使用 REST 调用发起的另一个远程服务器的复制过程 使用 rsync 我已经对express框架足够熟悉 并且刚刚开始尝试child process库 并偶然发现了一个

随机推荐