Blazor MAUI-相机和麦克风的安卓权限
我试图显示 html元素中的相机和麦克风的实时流. 在Blazor文件(sample.razor)中,我调用方法来请求并显示视频: protected override async Task OnAfterRenderAsync(bool firstRender) { await base.OnAfterRenderAsync(firstRender); if (firstRender) { await JSRuntime.InvokeVoidAsync("requestMediaAndShow"); } } 在JavaScript文件(sample.js)中,我请求流并分配给视频HTML元素. // Create request options let options = { audio: true, video: true };
0 2024-02-13
编程技术问答社区
安卓浏览器使用JavaScript从前置摄像头切换到后置摄像头
我无法正确弄清楚这一点,或者甚至可以切换摄像机. 我尝试在第二次致电getusermedia之前停止视频轨道,希望停止视频轨道会关闭前置摄像头,以便后置摄像头可以打开,但它不起作用. var oldStream; // the old stream from getUserMedia Function SwitchCamera() { oldStream.getVideoTracks()[0].stop(); navigator.mediaDevices.getUserMedia({audio: true, video: {deviceId: 'rear camera device ID'}).then(function(newStream){ // this never runs }).catch(function(err){ console.log(err); // Cannot connect came
0 2024-02-10
编程技术问答社区
关闭网络摄像头而无需重新加载
我是Web开发的初学者,并且正在使用create-react-app构建的视频聊天应用程序.我正在使用recordRTC库进行记录,并从用户的网络摄像头和麦克风中进行流式传输. 当我停止录制时,我也想关闭网络摄像头. import React, { Component } from "react"; import RecordRTC from "recordrtc"; const captureUserMedia = callback => { const params = { audio: true, video: true }; navigator.mediaDevices .getUserMedia(params) .then(callback) .catch((error) => { console.error(JSON.stringify(error)); }); }; export default class Re
16 2023-11-29
编程技术问答社区
导航仪.mediaDevices.ondevicechange在使用音频插孔时不工作。
我正在尝试使用MediaDevice API响应设备更改事件,如下 _trackDeviceChange: function () { var e = this navigator.mediaDevices.ondevicechange = function () { navigator.mediaDevices.enumerateDevices().then(function (n) { e.get('allVideoSourceDevices').clear(), e.get('allAudioSourceDevices').clear(), e.get('allVideoSourceDevices').pushObjects(t.default.filter(n, [ 'kind', 'videoi
2 2023-11-29
编程技术问答社区
如何使用getUsermedia和mediaRecorder下载录音并给出视频规格?
navigator.mediaDevices.getUserMedia().then(stream=>{ //a recorder is created var mediaRecorder = new MediaRecorder(stream); //started it mediaRecorder.start(); //an array is created that receives all the data var recordedChunks = []; //fill it mediaRecorder.ondataavailable = function(e){recordedChunks.push(e.data)}; //when stopped downloads the recording mediaRecorder.onstop=function(){ var blob = new Blob(recordedChunks, { 'type': 'v
2 2023-11-18
编程技术问答社区
如何将Javascript音频blob写成Python波形?
我正在尝试创建一个每秒钟接受音频斑点的烧瓶端点,然后将其写入波浪文件: 烧瓶: @app.route('/api/v01/post/audio-blob/', methods=['POST']) def api_post_audio_blob(): blob = request.data with open('file.wav', 'ab') as f: f.write(blob) return Response(status=200) javascript: const startButton = document.getElementById("start"); startButton.addEventListener("click", function() { /* Get client-side audio stream */ var constraints = { audio: true }
10 2023-07-07
编程技术问答社区
有可能在javascript中旋转视频块吗?
我试图旋转视频标签并将其放在"图片中"模式中, 我知道我们可以使用转换旋转视频:rotatey(180DEG),但是CSS不会以" PIP"模式应用于视频. 所以我认为如果我们可以旋转其块,然后以" PIP"模式称其为 这是代码,请提出任何建议... const cameraRecording = async function(micStatus){ try{ const stream = await navigator.mediaDevices.getUserMedia({ video : true, audio: micStatus ? false : true }); cameraRecElem.srcObject = stream; record(stream, true); } catch(err){
6 2023-06-13
编程技术问答社区
Html代码不适应平板电脑和手机
我是一个完整的初学者,并使用我从Codepen复制粘贴并将它们放在一起的代码.它有效,但是在平板电脑或手机视图中,它将不再适合,我尝试了媒体查询,但它不起作用或犯错误.因此,请有人可以修复我的代码,我可以将其用于我的网站. 非常感谢您的高级. * { padding: 0; margin: 0; box-sizing: border-box; } body { background-color: #000; } .container { max-width: 500px; width: 100%; padding: 0 4%; padding-top: 65px; margin:0 auto; display: flex; justify-content: center; align-items: center; } .wrapper { width: 100%; heig
44 2023-04-12
编程技术问答社区
MediaDevices.getUserMedia() 如何设置音频限制(采样率/比特深度)?
使用浏览器Web API,我想设置MediaDevices.getUserMedia 约束属性,适合记录音频语音(语音消息),例如设置这些参数: 单声道 16bit 16KHz 在这里我的代码: const mediaStreamConstraints = { audio: { channelCount: 1, sampleRate: 16000, sampleSize: 16, volume: 1 }, video: false } navigator.mediaDevices.getUserMedia(mediaStreamConstraints) .catch( err => serverlog(`ERROR mediaDevices.getUserMedia: ${err}`) ) .then( stre
518 2023-01-31
编程技术问答社区
如何在FireFox中检查访问麦克风的权限是否被用户拒绝?
是否有办法找出用户是否已拒绝或允许对媒体设备的许可(例如: 麦克风,相机)在Firefox中?在Chrome中,我可以使用Navigator.permissions.query进行检查,但这在Firefox中以" TypeError"失败. navigator.permissions.query({name:"microphone"}).then(function(promise) { if ( promise && promise.state ) { console.log(promise.state); //"granted", "prompt" or "rejected" } }); //in Firefox, It throws the error "TypeError: 'name' member of PermissionDescriptor '' is not a valid value for enumeration PermissionN
20 2023-01-21
编程技术问答社区
通过 "getDisplayMedia "检查浏览器/平台是否支持屏幕捕捉。
我们可以通过navigator.mediaDevices.getDisplayMedia()向屏幕或Windows请求媒体流.但是,这立即提示用户决定要使用哪种捕获.我需要检查浏览器/平台是否支持屏幕捕获. 当然可以检查'getDisplayMedia' in navigator.mediaDevices,但这只是告诉我们浏览器是否支持API.特别是,在Android上的FF和Chrome上,定义了API,我可以调用getDisplayMedia(),但它总是立即返回a NotAllowedError错误(可以预期:根据caniuse ,移动浏览器尚未支持getDisplayMedia.) ) 接下来,我尝试检查navigator.mediaDevices.getSupportedConstraints().但是,我的手机FF返回与我的桌面FF完全相同的对象.特别是,在两种情况下,navigator.mediaDevices.getSupportedConstraints().
10 2022-10-09
编程技术问答社区
试图捕捉音频,但在Safari 12上,即使授予了麦克风权限,navigator.mediaDevices.enumerateDevices()也是NULL。
查看相关问题:Navigator.mediaDevices.getUserMedia 不工作在 iOS 12 Safari 上 我们正在尝试从用户输入用户 MediaDevices.getUserMedia 和音频上下文中捕获音频 当用户点击按钮时,我们会检查可用设备,然后我们会捕获他们的音频流 let enumDevicePromise = navigator.mediaDevices.enumerateDevices() .then(devices => devices.find(d => d.kind === "audioinput" && d.label !== "" && d.deviceId === "default")) .catch((error) => { // handle error }); this.handleCheckEnumeratedDevices(enumDevicePromise); // capt
1188 2022-08-10
编程技术问答社区