首頁  >  文章  >  我可以在 macOS 上使用什麼 Java 函數在適當的裝置上以適當的音量播放適當的警報聲音?

我可以在 macOS 上使用什麼 Java 函數在適當的裝置上以適當的音量播放適當的警報聲音?

王林
王林轉載
2024-02-22 12:40:20394瀏覽

php小編小新在java問答中,有讀者提出了一個問題:「我可以在macOS 上使用什麼Java 函數在適當的設備上以適當的音量播放適當的警報聲音?」這​​個問題涉及到在macOS系統上使用Java來控制裝置播放警報聲音的功能,需要結合Java的音訊處理函式庫來實現,具體操作方法和函數呼叫可以透過深入學習相關的Java音訊處理知識來解決。

問題內容

我希望我的 Java 應用程式在播放警報聲音時遵循系統設定...中的 macOS 設定。 › 聲音 › 音效

例如,只要有人按下 backspace 且遊標位於 jTextField 中最左側的位置,程式就會播放使用者配置的「警報聲音」。

在我的應用程式的其他功能中也有類似的播放相同警報聲音的需求。但我還沒有找到一個庫,可以讓我的應用程式在適當的設備上以適當的音量播放系統適當的「警報聲音」。

我希望我的應用程式遵循以下 macOS 系統設定:

  • 警報聲音(聲音名稱)
  • 透過(裝置名稱)播放音效
  • 警報音量(滑桿設定)

我該怎麼做?

解決方法

我已經在 macos 上嘗試過 Toolkit.beep,它似乎可以滿足您的要求。我尚未驗證 jtextfield 是否呼叫 toolkit.beep,但它似乎正在呼叫它。人們可以查看 openjdk 原始碼,可能會有更好的想法。

在 windows 上,jtextfield 似乎使用預設蜂鳴聲。還有 toolkit.beep。

只要預設的 toolkit 可以使用(適合我),您就可以將以下內容放置在您的應用程式中需要提醒使用者的位置。

toolkit tk = toolkit.getdefaulttoolkit();
tk.beep();

這是我的 mcv 範例。

import java.awt.event.*;
import java.awt.BorderLayout;
import java.awt.Toolkit;
import javax.swing.*;

public class Alert extends JFrame {
   private Toolkit tk = Toolkit.getDefaultToolkit();
   public Alert () {
      setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
      JTextField tf = new JTextField();
      JButton bbeep = new JButton(new AbstractAction() {
         public void actionPerformed (ActionEvent e) {tk.beep();}
      });
      setLayout(new BorderLayout());
      getContentPane().add(tf, BorderLayout.NORTH);
      getContentPane().add(bbeep, BorderLayout.SOUTH);
      pack();
      setVisible(true);
   }

   public static void main(String[] args) {
      SwingUtilities.invokeLater(new Runnable() {
         public void run() { new Alert(); }
      });
   }
}

以上是我可以在 macOS 上使用什麼 Java 函數在適當的裝置上以適當的音量播放適當的警報聲音?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:stackoverflow.com。如有侵權,請聯絡admin@php.cn刪除