您可以通过Sound API访问麦克风,但不会给您简单的响度级别。您只需要捕获数据并就其声音大小做出自己的决定。
http://download.oracle.com/javase/tutorial/sound/capturing.html
记录意味着保存数据,但是在确定响度之后,您可以在此处丢弃数据。
的根均方方法计算波数据的部分的振幅的一个好方法。
回答您的评论,是的,您捕获了较短的数据(可能仅值几毫秒)并计算了幅度。根据需要更新的频率,定期重复此操作。如果您想跟踪以前的响度并进行比较,这取决于您-
在这一点上,它只是比较数字。您可以使用最近响度的平均值来计算房间的环境响度,以便可以检测到噪音的突然增加。
我不知道打开和关闭音频捕获会有多少开销,但是您最好
TargetDataLine始终保持打开状态,并在需要时计算响度,这样可能会更好。当该行处于打开状态时,您确实需要继续调用read(),否则应用程序将挂起,等待您读取数据。



