如何录制麦克风的声音?

我想弄清楚如何使用我的 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 的字节数组。


有人能帮忙吗?


慕标5832272
浏览 112回答 1
1回答

千巷猫影

好吧,在与笔记本电脑进行了多次来回交互之后...解决方案是安装新版本的 Eclipse,此时 Mac 询问我是否要允许 Java 权限访问麦克风.希望这会帮助那里的人。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java