Heim > Java > Hauptteil

Welche Java-Funktion kann ich unter macOS nutzen, um auf dem entsprechenden Gerät den passenden Alarmton in der passenden Lautstärke abzuspielen?

王林
Freigeben: 2024-02-22 12:40:20
nach vorne
393 Leute haben es durchsucht

php-Editor Xiaoxin In den Java-Fragen und Antworten stellte ein Leser eine Frage: „Welche Java-Funktion kann ich unter macOS verwenden, um den entsprechenden Alarmton mit der entsprechenden Lautstärke auf dem entsprechenden Gerät abzuspielen?“ Diese Frage betrifft die Funktion von macOS, die Java verwendet Die Steuerung des Geräts zum Abspielen von Alarmtönen im System muss in Kombination mit der Java-Audioverarbeitungsbibliothek implementiert werden. Die spezifischen Betriebsmethoden und Funktionsaufrufe können durch ein eingehendes Studium relevanter Java-Audioverarbeitungskenntnisse gelöst werden.

Frageninhalt

Ich möchte, dass meine Java-Anwendung beim Abspielen von Warntönen den macOS-Einstellungen in Systemeinstellungen... folgt. › Sound › Soundeffekte .

Wenn beispielsweise jemand backspace drückt und sich der Cursor ganz links im jTextField befindet, spielt das Programm einen vom Benutzer konfigurierten „Warnton“ ab.

Es besteht ein ähnlicher Bedarf, den gleichen Alarmton in anderen Funktionen meiner App abzuspielen. Ich habe jedoch keine Bibliothek gefunden, die es meiner App ermöglicht, den systemgerechten „Alarmton“ in der entsprechenden Lautstärke auf dem entsprechenden Gerät abzuspielen.

Ich möchte, dass meine App den folgenden macOS-Systemeinstellungen folgt:

  • Alarmtöne (Soundnamen)
  • Soundeffekte über (Gerätename) abspielen
  • Alarmlautstärke (Schiebereglereinstellung)

Was soll ich tun?

Workaround

Ich habe Toolkit.beep auf MacOS ausprobiert und es scheint zu tun, was Sie wollen. Ich habe nicht überprüft, dass jtextfield toolkit.beep aufruft, aber es scheint es aufzurufen. Man kann sich den OpenJDK-Quellcode ansehen und bekommt vielleicht eine bessere Vorstellung.

Unter Windows scheint jtextfield einen Standardton zu verwenden. Und Toolkit.beep.

Solange das Standard-Toolkit funktioniert (was bei mir funktioniert), können Sie in Ihrer App Folgendes platzieren, wo immer Sie es benötigen, um den Benutzer zu benachrichtigen.

toolkit tk = toolkit.getdefaulttoolkit();
tk.beep();
Nach dem Login kopieren

Das ist mein MCV-Beispiel.

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(); }
      });
   }
}
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWelche Java-Funktion kann ich unter macOS nutzen, um auf dem entsprechenden Gerät den passenden Alarmton in der passenden Lautstärke abzuspielen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:stackoverflow.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!