1

我正在尝试编写一个使用 mmapi 协议的应用程序来分析来自麦克风的音量,它需要做的就是检测来自麦克风的音频电平并实时显示。

我正在使用 RecordControl,看来您必须在将任何数据写入缓冲区之前停止流。我尝试创建一个线程来记录非常短的 20-40 毫秒的音频突发,但它太慢了。在启动和停止流时有很多开销,这是一个可行的解决方案。

 Player recordPlayer = Manager.createPlayer("capture://audio");
            recordPlayer.realize();
            RecordControl recordControl = (RecordControl) recordPlayer.getControl("RecordControl");
            output = new ByteArrayOutputStream();
            recordControl.setRecordStream(output);
            recordPlayer.start();
            recordControl.startRecord();

            while(running)
            {

                if (recordPlayer != null) 
                {
                    Thread.sleep(25);

                    // Nothing here??
                    byte []data = output.toByteArray();
                }
            }

            recordPlayer.stop();
            recordControl.stopRecord();
            recordControl.commit();
4

0 回答 0