問題
playwrightが操作するchromeとかはplaywrightが自前でインストールするもので、物理カメラがない(更に自分はdocker化している)
解決
playwright.config.ts にlaunchOptionsを追加する。この際に必要なのが.y4m
拡張子か.mjpeg
拡張子の動画
The supported file formats are YUV4MPEG2 (a.k.a. Y4M) and MJPEG/JPEG
自分はiPhoneにあった動画をffmpegで.mjepg
に変換した
$ ffmpeg -i iPhone.MOV sample.mjpeg
その上でlaunchOptionsのargsにこのように設定
import { PlaywrightTestConfig } from "@playwright/test"
const config: PlaywrightTestConfig = {
use: {
launchOptions: {
args: [
"--use-fake-ui-for-media-stream",
"--use-fake-device-for-media-stream",
"--use-file-for-fake-video-capture=/app/sample.mjpeg",
],
},
},
}
export default config
--use-fake-ui-for-media-stream
は合わせて使うという事が書かれているページは見なかったが、自分の場合はこの3つを合わせないとだめだった
使っているパッケージの問題なのか、最近のchromeでの違いなのか...
- --use-fake-ui-for-media-stream
- --use-fake-device-for-media-stream
- --use-file-for-fake-video-capture=/app/sample.mjpeg
使っていたパッケージ
参考