- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我目前正在使用 MediaRecorder用于在应用程序内录制音频的 API。
有没有办法从多个输入设备(比如两个麦克风)进行录音?
我可以使用 mediaDevices.enumerateDevices()
获取设备列表,如 here 所示.
理想情况下,如果可能的话,我想选择两个或更多的设备进行录制。
这可能吗?
最佳答案
解决方案是请求多个 getUserMedia
并将流与 AudioContext
混合。
这是如何做到这一点。
const VIDEO_ID = "video_id";
const MIC_1_ID = "mic_1_id";
const MIC_2_ID = "mic_2_id";
// Request permission
navigator.mediaDevices.getUserMedia({ video: true, audio: true }).then(() => {
// Loop over all available video and audio devices (input and output)
navigator.mediaDevices.enumerateDevices().then((devices) => {
// Request exact devices
const requests = [
navigator.mediaDevices.getUserMedia({
video: { deviceId: { exact: VIDEO_ID } },
}),
navigator.mediaDevices.getUserMedia({
video: false,
audio: { deviceId: { exact: MIC_1_ID } },
}),
navigator.mediaDevices.getUserMedia({
video: false,
audio: { deviceId: { exact: MIC_2_ID } },
}),
];
// Wait for all device requests to resolve.
Promise.all(requests).then((streams) => {
const ctx = new AudioContext();
const dest = ctx.createMediaStreamDestination();
// Connect streams to the destination audio stream.
streams.map((stream) => {
ctx.createMediaStreamSource(stream).connect(dest);
});
const videoTrack = streams[0].getTracks()[0];
const mixedTracks = dest.stream.getTracks()[0];
// Combine video and audio tracks into single stream.
const stream = new MediaStream([videoTrack, mixedTracks]);
// Start recorder
const recorder = new MediaRecorder(stream, { mimeType: "video/mp4" });
// ...
});
});
});
关于javascript - 媒体记录器 : Record from Multiple Microphones,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47059324/
WebAudio 允许通过 navigator.getUserMedia() 访问麦克风。调用此方法时,浏览器会显示一个重新编码标志(Chrome 和 Edge 中的红点),表明麦克风正在使用中。这工
首先,我正在做一个小项目来查看一些声音的频谱。 我用麦克风做了这个: alt text http://img25.imageshack.us/img25/4271/spectrumanalyzerfo
我是开发用于飞行模拟的应用程序的团队的一部分。这些应用程序之一也正在MacOS上运行,并且需要访问麦克风才能与在线虚拟空中交通管制进行通信。 从MacOS 10.14开始,麦克风访问不再起作用。过去,
在 macbook air 64 位上运行以下代码,在 python 2.7 和 python 3.4 上测试代码 import speech_recognition as sr r = sr.Rec
是否可以访问 watch 麦克风并处理实时音频流以获得特定信息(分贝级别和当前频率)?我知道可以使用 swift presentAudioRecorderController 在 watch 上录制音
我目前正在使用 MediaRecorder用于在应用程序内录制音频的 API。 有没有办法从多个输入设备(比如两个麦克风)进行录音? 我可以使用 mediaDevices.enumerateDevic
我正在使用 Sinch javascript SDK 构建一个浏览器到浏览器的视频通话应用程序。当在 chrome 中调用 call.hangup(); 结束视频通话时(至少),红色相机图标仍然可见,
我知道 AVAudioRecorder 类,但我想知道如何(使用 Monotouch)捕获麦克风输入,以便将其流式传输到远程服务器。 AVAudioRecorder 类允许您将流保存到本地文件。有没有
使用 Java,我正在尝试从默认麦克风录制声音并显示当前音量和静音状态(在操作系统级别设置,如果可能的话对检查字节不感兴趣)。到目前为止,我可以使用以下代码获取 TargetDataLine 并记录到
所以我想知道从默认麦克风读取数据并输出到默认扬声器的最短(就有效线路而言)开放 AL 代码是什么? 我在 Visual Studio 2008 下的 windows 7 上开发 最佳答案 一个古老的问
我的主要目标是拥有一个程序,它允许我在 Windows 下使用“滚动锁定”键将我的麦克风静音/取消静音。由于键盘上的滚动锁定灯,这将给我一个很好的指示器,指示麦克风是否静音。 如何获取有关麦克风状态的
我想用 Phaser 3 做一个音频输入可视化器,我想把麦克风输入到着色器,但我找不到让它工作的方法。 我对着色器有基本的了解,我可以处理图像纹理,但我真的不知道如何提供声音。我检查了一个用 thre
为了使用 Protractor 进行测试,我需要在没有麦克风的计算机上模拟来自麦克风的音频输入。 通过使用“--use-fake-device-for-media-stream”标志,Chrome可以
在 Android Studio 中,我创建了一个模拟器......avdmanager create avd --force --name testAvd --abi google_apis_pla
我有一个基于 Wowza 的 webcam.fla 示例的网络摄像头流应用程序。该应用程序将音频和视频从 Flash 传输到 Wowza 服务器,并在其中进行转码等。 我们正在尝试添加一项功能,允许将
我认为 Java Sound API 存在性能(延迟)问题。 音频监视器 下面的代码确实对我有用。它正确地打开麦克风,并通过我的扬声器实时输出音频输入(即监听)。但我担心的是播放速度......从我对
我正在学习 html5,想尝试在扬声器上播放我在麦克风上所说的内容。于是我写了如下js代码: navigator.getUserMedia = navigator.getUserMedia ||nav
我在 iOS 上使用 flex 移动应用程序时遇到问题。这是一个带有 red5 服务器的视频聊天应用程序。 视频效果不错,但声音回声很大!我尝试使用 getEnhancedMicrophone() 但
以下是我正在使用的权限 我的 list 中没有麦克风权限,那为什么 playstore 在安装应用程序时要求“麦克风”权限 最佳答案 虽然 dmitriyzaitsev 的回答是
我有一个 super 简单的网页,它使用 Web Speech API这样我就可以更轻松地与我妈妈(她是聋子)交流。 Google 的语音识别速度足够快,我可以与她实时交谈(她会读取虚拟现实结果)。
我是一名优秀的程序员,十分优秀!