问题标签 [mediadevices]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
javascript - getUserMedia - 如何检测设备是否真的有摄像头
我正在使用 html5/javascript getUserMedia api 编写一个 js 应用程序,如果可用,它将使用设备的相机。我正在使用 Modernizr 来检测(浏览器的)功能,如下所示:
在真正的块内:
这工作正常。但我发现 Modernizer.getUserMedia 调用根据支持 api 的浏览器返回 true,而不是设备是否真的有摄像头。
IE。在我的带有 iSight 摄像头和当前版本 Chrome 的 MacBook 上,Modernizr.getUserMedia 返回 true,然后 navigator.getUserMedia(...) 提示允许使用摄像头。出色的
但是,在另一台没有摄像头但使用当前版本的 Chrome 的机器上,Modernizr.getUserMedia 返回 true,这意味着 navigator.getUserMedia(...) 提示允许使用设备没有的摄像头。没那么优秀!
有谁知道是否可以检测到相机的存在?理想情况下,如果他们没有相机,我不想提示用户访问相机的权限!
干杯
弥敦道
c# - 如何获取媒体设备信息?
我正在使用MediaDevices
NuGet 包来识别连接到计算机的所有媒体设备。我不确定我如何获得MediaStorageInfo
,例如它可以容纳多少空间或有多少可用空间。
我的代码片段:
手册建议:
似乎丢失了GetStorageInfo
,因为错误指出无法解决并且当前联系人中不存在。我不确定如何将我的传递MediaDevice
给MediaStorageInfo
. 任何建议都有帮助。谢谢!
javascript - iOS 11 navigator.getUserMedia 在 Chrome 中未定义
在 iOS 11 发布之后,我们设法在 Chrome(在 iOS 设备上)运行 livescan 二维码扫描器,我们是在 2017 年 10 月。我们使用了一个补丁版本的 instascan ( https://github.com/schmich/instascan )。一切都很好,直到......(我不知道确切的时间)它停止工作。是否可能与 WKWebView 的采用有关?( https://blog.chromium.org/2016/01/a-faster-more-stable-chrome-on-ios.html ) 经过简单的测试,我们已经意识到 navigator.getUserMedia 或 navigator.mediaDevices 现在是未定义的。
有没有其他方法可以让它再次工作?
谢谢
c# - 错误上传/下载文件到/从便携式设备使用
我正在尝试无限循环地从 Android 三星平板电脑上传和下载文件。
示例代码是
问题如下:在第一次迭代中,文件被上传,当我从平板电脑中物理删除文件(收件箱文件夹为空)并尝试再次上传文件时,我得到一个文件存在的异常,但是,平板电脑的收件箱文件夹为空。
下载文件时问题相同。在第一次迭代中,文件被下载,但是当在平板电脑上物理创建另一个文件时,则: device.EnumerateFiles(@"\Tablet\Outbox\"); 返回空列表。
我怎么解决这个问题?
vuejs2 - 在 vuejs 2 中使用 MediaDevices.getUserMedia() 切换相机
我正在尝试开发一个网站,我可以在其中从移动设备中的 chrome 切换相机。当前我使用 vuejs 2 框架并使用 MediaDevices.getUserMedia() 拍摄图像。从这里我明白我将如何使用我的代码。前后摄像头分别工作。但是在我试图在两者之间切换的地方它不起作用。这是我的代码:
谁能帮我看看如何更换相机?TIA
javascript - Navigator.MediaDevices.getUserMedia() 使用哪些相机通信标准?
有谁知道使用什么通信标准来检测与 getUserMedia 一起使用的相机硬件?
我认为它是 MTP 或类似的东西,虽然我希望每个浏览器/操作系统的实现都不同,但我已经搜索了两天,但我找不到任何可靠的信息。
client-server - 客户端-服务器应用程序中的语音识别
我必须在客户端-服务器应用程序中实现语音识别,软件需要是免费的并且可以在每个浏览器上运行(IE 除外)。这个想法是创建一个带有麦克风的图标,当用户单击它时,语音识别系统将激活并记录麦克风输入,当用户说出“打开 X”、“主页”、“退出”等命令时,系统将重定向到不同的子站点,返回主页或从应用程序中注销用户。做这个的最好方式是什么?它是客户端还是服务器端?用什么软件?如果是多个,如何整合?
我有一个想法向服务器发送请求(通过单击图标)并开始在服务器端录制并将识别的文本发送到客户端并根据输出执行某些操作,但我认为这是不可能的,或在客户端使用 MediaDevices 记录音频输入并将其发送到 pocket-sphinx.js(仍在客户端)并从中获取文本并执行某些操作。我基本卡住了。。
javascript - mediaDevices.getUserMedia,音频播放完毕后开始麦克风录音,Safari问题
有一个我不清楚的情况。
我想要的是:播放音频,音频播放完毕后,开始麦克风录音。
问题:在 FF 和 Chrome 中,代码运行良好。然而,在 Safari 上,当音频停止播放并且麦克风录音功能开始时,音频会同时再次播放。
开始和结束钩子是用 jQuery 完成的。这是结束的绑定。
start_microphone_recording 函数调用一个函数,其中更改了图标,然后调用了 init_recording,仅此而已,所以我没有包括那个。
启动麦克风功能:
在 Safari 中激活 mic 时,会执行“播放”绑定功能。我试过使用 pause() 并静音但不起作用。还尝试删除音频标签并从音频标签中清除 src。
任何人都知道 Safari 为什么要这样做以及解决方案可能是什么?
示例:我在 html 的 AUDIO 标记中设置了 5 个 MP3 音频,我一个一个地播放,我运行“init_recording”函数,Safari 将同时播放所有 5 个 MP3 音频,同时麦克风已经启动记录。
javascript - 在 chrome 工具中获得正确的全屏相机,但在真实设备中获得更小的屏幕
我正在制作一个使用设备摄像头的 PWA。我在 chrome 工具中获得了正确的全屏相机,但在真实设备中获得了更小的屏幕。我试过像这样设置宽度和高度,但这并没有解决错误:
固定的宽度和高度值解决了特定设备的问题,但不能解决所有设备的问题。
已通过约束
左图<--:Chrome DevTools中的全屏
图片右->:相机在真实设备上不是全屏的
看看这里的演示代码: https ://github.com/NischalJakhar/NischalJakhar.github.io
javascript - 使用 javascript 检测 Chrome 中的麦克风/音频设备更改
我正在尝试检测默认/选定的麦克风何时更改或使用纯 Javascript 在 Web 应用程序中断开连接。这个想法是让用户知道是否选择了正确的麦克风并且是否正常工作。
我发现的最佳选择是MediaDevices.ondevicechange。但它似乎落后于 Google Chrome 中的Experimental Web Platform features 标志:
它在
Experimental Web Platform features
旗帜后面,并使用 call it withnavigator.mediaDevices.ondevicechange = ...
关于这个主题的另一个答案呼应了同样的事情:
浏览器支持 在撰写本文时,它看起来还很不完整。请参阅此相关问题:Chrome 浏览器上的音频设备插件和插件事件以进行进一步讨论,但简短的故事是对于 Chrome,您需要启用“实验性 Web 平台功能”标志。
我的问题有两个:
- 我的理解是否真的正确,我不能在没有实验功能标志的情况下在 Chrome 上使用 MediaDevices.ondevicechange?(由于其他一些限制,我不能使用这个标志)。
- 我还有其他方法可以检测音频设备的变化吗?