我正在开发基于java / selenium的应用程序,需要将媒体(即音频和/或视频文件)传递给浏览器。
我已经能够使用以下代码段在Chrome中成功完成此操作:
DesiredCapabilities capabilities = DesiredCapabilities.chrome();
ChromeOptions options = new ChromeOptions();
options.addArguments("--allow-file-access-from-files",
"--use-fake-ui-for-media-stream",
"--allow-file-access",
"--use-file-for-fake-audio-capture=D:\\PATH\\TO\\WAV\\xxx.wav",
"--use-fake-device-for-media-stream");
capabilities.setCapability(ChromeOptions.CAPABILITY, options);
ChromeDriver driver = new ChromeDriver(capabilities);
Firefox 33.1中是否有类似的选项可以实现相同的功能?
如果没有,怎么办呢?
答案 0 :(得分:3)
这是从Linux上的命令行设置伪造的网络摄像头的一种方法。
# 1. Install v4l2loopback kernel module from apt
sudo apt install v4l2loopback-dkms
# 2. Enable the "fake webcam", via v4l2loopback kernel module
sudo modprobe v4l2loopback devices=1 card_label="My Fake Webcam" exclusive_caps=1
# Link video file (on loop) to the "fake webcam"
ffmpeg -stream_loop -1 -re -i ./MYFILE.mp4 -vcodec rawvideo -pix_fmt yuv420p -threads 0 -f v4l2 /dev/video0
# Link desktop video stream to the "fake webcam"
ffmpeg -f x11grab -r 15 -s 1280x720 -i :0.0+0,0 -vcodec rawvideo -pix_fmt yuv420p -threads 0 -f v4l2 /dev/video0
最重要的是,它可同时用于Firefox和Chrome!因为它在内核级别伪造了网络摄像头。
在此处测试您的假冒网络摄像头:https://webcamtests.com/
如果您需要禁用它...
# To disable the fake webcam, simply remove it from the kernel
sudo modprobe --remove v4l2loopback
无论如何,希望有人觉得这有用!
答案 1 :(得分:2)
Firefox仅具有这些功能, 浏览器名称, browserVersion, platformName, acceptInsecureCerts, pageLoadStrategy, 代理, setWindowRect, 超时, unhandledPromptBehavior
但是作为一种选择,下面的代码中有一个
options.addPreference(“ media.navigator.streams.fake”,true);
希望它可以帮助您解决这种情况。