0

我有一个播放音频文件的 java 应用程序。因此,在我的 java 应用程序播放音频文件或声音之前,我想静音所有其他应用程序声音,如 Windows 媒体播放器、VLC 播放器等,如果当时正在播放这些声音。

在我的 java 应用程序完成播放音频文件后,我想再次取消静音。

有没有办法做到这一点?

谢谢

4

2 回答 2

1

不,你不能,这与 Java 无关,但操作系统不允许。表现良好的应用程序应在失去音频焦点时暂停播放。

于 2012-10-16T11:33:44.583 回答
0

您不能在普通的旧 java AFAIK 中执行此操作。您需要使用 JNI 或 JNA。有一些用于音频访问的 API 可以解决问题,例如,您可以使用 java 中的 portaudio(最近有人宣布了一个这样做的开源项目,如果找不到,请在 portaudio maling 列表中询问),但是这个有一些问题:

  • 它将使您的代码平台依赖。
  • 它并不总是有效(例如,如果您没有权限,或者如果另一个软件已经在使用该设备,或者该设备没有独占模式,或者任何其他原因)。
  • 您必须重新编程您的音频代码以使用 PA 接口而不是 javasound。
于 2012-10-17T14:57:42.560 回答