我想弄清楚如何使用我的 MacBookPro 从麦克风录制声音。我不确定这是代码问题还是 MacOS 中的隐藏权限问题。我已经完成了大部分教程并尝试了各种不同的解决方案,以至于我创建了下面的测试用例。public class AudioLinesTester { private static final Logger LOGGER = LoggerFactory.getLogger(AudioLinesTester.class); public static void main(String[] args) { LOGGER.debug("Starting Line tester"); AudioFormat format = new AudioFormat(8000.0f, 8, 1, true, true); Mixer.Info[] infos = AudioSystem.getMixerInfo(); Map<Line.Info, byte[]> sounds = new HashMap<Line.Info, byte[]>(); Stream.of(infos).forEach(mixerInfo -> { Mixer mixer = AudioSystem.getMixer(mixerInfo); Line.Info[] lineInfos = mixer.getTargetLineInfo(); if (lineInfos.length > 0 && lineInfos[0].getLineClass().equals(TargetDataLine.class)) { // The name of the AudioDevice LOGGER.debug("Line Name: {}", mixerInfo.getName()); // The type of audio device LOGGER.debug("Line Description: {}", mixerInfo.getDescription()); for (Line.Info lineInfo : lineInfos) { LOGGER.debug("\t---{}", lineInfo); Line line; try { line = mixer.getLine(lineInfo); TargetDataLine microphone = AudioSystem.getTargetDataLine(format, mixerInfo); microphone.open(format, 100352); LOGGER.debug("Listening on {}", microphone); ByteArrayOutputStream out = new ByteArrayOutputStream(); int numBytesRead; int CHUNK_SIZE = 1024; byte[] data = new byte[microphone.getBufferSize() / 5]; microphone.start(); int bytesRead = 0; 我希望从某些东西中得到一些输出,但我只是得到填充有 0 的字节数组。有人能帮忙吗?
1 回答
千巷猫影
TA贡献1829条经验 获得超7个赞
好吧,在与笔记本电脑进行了多次来回交互之后...解决方案是安装新版本的 Eclipse,此时 Mac 询问我是否要允许 Java 权限访问麦克风.
希望这会帮助那里的人。
添加回答
举报
0/150
提交
取消