- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
使用 Java,我正在尝试从默认麦克风录制声音并显示当前音量和静音状态(在操作系统级别设置,如果可能的话对检查字节不感兴趣)。到目前为止,我可以使用以下代码获取 TargetDataLine 并记录到它:
TargetDataLine line = (TargetDataLine) AudioSystem.getLine(new DataLine.Info(TargetDataLine.class, formato));
这在 Windows 上效果很好,线路是使用操作系统选择的默认麦克风。
现在,要获得音量/静音控制,我有以下代码:
Mixer.Info[] mixerInfos = AudioSystem.getMixerInfo();
for (Mixer.Info mixerInfo : mixerInfos) {
Mixer mixer = AudioSystem.getMixer(mixerInfo);
if (mixer.getMaxLines(Port.Info.MICROPHONE) > 0) {
System.out.println("-------------");
System.out.println(mixerInfo);
Port line = (Port) mixer.getLine(Port.Info.MICROPHONE);
line.open();
Line.Info[] targets = mixer.getTargetLineInfo();
Control[] controls = line.getControls();
for (Control control : controls) {
if (control instanceof CompoundControl) {
Control[] subControls = ((CompoundControl) control).getMemberControls();
for (Control subControl : subControls) {
System.out.println(subControl);
}
} else {
System.out.println(control);
}
}
System.out.println("-----------");
}
}
我的设置中有 2 个麦克风,我还没有找到一种方法来知道哪个是默认麦克风(现在它是阵列中的第二个)。
尝试了 Line port = AudioSystem.getLine(Port.Info.MICROPHONE);
并返回了第一个可用的(在这种情况下它不是默认值)。
那么,有什么方法可以获取与获取的 TargetDataLine 相关的默认麦克风端口?
谢谢!
最佳答案
要获取系统中安装的所有麦克风,您可以按如下方式列出它们:
package testing;
import javax.sound.sampled.AudioSystem;
import javax.sound.sampled.Line;
import javax.sound.sampled.LineUnavailableException;
import javax.sound.sampled.Mixer;
import javax.sound.sampled.TargetDataLine;
public class Main {
public static void main(String[] args) {
//Enumerates all available microphones
Mixer.Info[] mixerInfos = AudioSystem.getMixerInfo();
for (Mixer.Info info: mixerInfos){
Mixer m = AudioSystem.getMixer(info);
Line.Info[] lineInfos = m.getTargetLineInfo();
if(lineInfos.length>=1 && lineInfos[0].getLineClass().equals(TargetDataLine.class)){//Only prints out info is it is a Microphone
System.out.println("Line Name: " + info.getName());//The name of the AudioDevice
System.out.println("Line Description: " + info.getDescription());//The type of audio device
for (Line.Info lineInfo:lineInfos){
System.out.println ("\t"+"---"+lineInfo);
Line line;
try {
line = m.getLine(lineInfo);
} catch (LineUnavailableException e) {
// TODO Auto-generated catch block
e.printStackTrace();
return;
}
System.out.println("\t-----"+line);
}
}
}
}
}
从那开始你可以识别默认的...例如,在我的 MacBook 中,默认的名称为“内置麦克风”
关于Java 声音 : Getting default microphone port,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48342974/
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 的语音识别速度足够快,我可以与她实时交谈(她会读取虚拟现实结果)。
我是一名优秀的程序员,十分优秀!