如何在Java中获得对音频线的独占访问权限?

时间:2012-10-16 11:31:41

标签: java audio

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

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

有没有办法做到这一点?

由于

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

你不能在普通的旧Java AFAIK中这样做。您需要使用JNI或JNA。有一些用于音频访问的API可能会起到作用,例如你可以使用java的portaudio(有人最近宣布了一个开源项目,它确实这样做,如果你找不到它就在portaudio maling列表上询问),但是这个有一些问题:

  • 它将使您的代码平台依赖。
  • 它并不总是有效(例如,如果您没有权限,或者其他软件已在使用该设备,或者该设备没有独占模式,或其他任何原因)。
  • 您必须重新编程音频代码才能使用PA接口而不是javasound。