如何在Java中以独占方式访问音频线路?
我有一个java应用程序,它可以播放音频文件。因此,在我的java应用程序播放音频文件或声音之前,我想禁用所有其他应用程序的声音,如Windows media player、VLC player等,如果它们当时正在播放 在我的java应用程序完成播放音频文件后,我想再次取消静音 有没有办法做到这一点如何在Java中以独占方式访问音频线路?,java,audio,Java,Audio,我有一个java应用程序,它可以播放音频文件。因此,在我的java应用程序播放音频文件或声音之前,我想禁用所有其他应用程序的声音,如Windows media player、VLC player等,如果它们当时正在播放 在我的java应用程序完成播放音频文件后,我想再次取消静音 有没有办法做到这一点 谢谢不行,这与Java无关,但操作系统不允许这样做。表现良好的应用程序在失去音频焦点时应该暂停播放。在普通的java AFAIK中无法做到这一点。您需要使用JNI或JNA。有一些用于音频访问的API
谢谢不行,这与Java无关,但操作系统不允许这样做。表现良好的应用程序在失去音频焦点时应该暂停播放。在普通的java AFAIK中无法做到这一点。您需要使用JNI或JNA。有一些用于音频访问的API可以做到这一点,例如,您可以使用java的portaudio(有人最近宣布了一个开源项目,可以做到这一点,如果您找不到,请在portaudio maling列表中查询),但这有一些问题:
- 它将使您的代码依赖于平台
- 它不会一直工作(例如,如果您没有权限,或者其他软件已经在使用该设备,或者该设备没有独占模式,或者其他任何原因)
- 您必须重新编程音频代码以使用PA接口而不是javasound