如何使用 Chromium 上的 Playwright 将音频发送到假麦克风输入?

问题描述 投票:0回答:1

我正在开发一些自动化功能,想要将 wav 或 mp3 文件发送到浏览器上的麦克风输入。我已经找到了 Chromium 的所有命令行开关,并且我在 Playwright 浏览器上下文中设置了“麦克风”权限。

UI 正确显示麦克风的“假输入设备”,以便该部分看起来正在工作。

我正在测试的 UI 有一个 [测试] 按钮可以开始从麦克风录音。有谁知道如何通过假麦克风传输我的 .wav 文件吗?

我尝试分配文件(通过使用 SetInputFilesAsync()),但这似乎不起作用。我以为我可以参加这个活动,但我仍然不知道如何传递文件。

有谁知道是否可以将音频文件发送到假输入设备? 预先感谢您!

audio chromium playwright microphone
1个回答
0
投票

我最近正在处理同样的任务,我希望我的代码示例可以帮助您。启动浏览器时您需要使用一些特定参数:

  • “--use-fake-device-for-media-stream”让 Chrome 使用假媒体设备
  • “--use-fake-ui-for-media-stream”来抑制权限请求
  • “--use-file-for-fake-audio-capture=C: ilepath udio.wav”如果您希望通过麦克风播放预定义的音频文件(但不确定 mp3)
from playwright.sync_api import expect
from playwright.sync_api import Playwright
import time

def test_web_mic(playwright: Playwright):
    browser = playwright.chromium.launch(headless=False,
                                         args=[
                                             # use Chrome's fake media streams
                                             "--use-fake-device-for-media-stream",
                                             # bypasses Chrome's cam/mic permissions dialog
                                             "--use-fake-ui-for-media-stream",
                                             # pass in your own custom media
                                             "--use-file-for-fake-audio-capture=C:\\filepath\\audio.wav"]
                                         )
    context = browser.new_context()
    context.grant_permissions(permissions=["microphone"])
    page = context.new_page()
    page.goto("https://mictests.com/")
    page.get_by_role("button", name="Test my mic").click()
    time.sleep(40)
    page.get_by_role("button", name="Stop microphone").click()
    page.pause()

    context.close()
    browser.close()
© www.soinside.com 2019 - 2024. All rights reserved.