【问题标题】:Java class TrayIcon, notification message. How to replace system sound with a custom one?Java 类 TrayIcon,通知消息。如何用自定义声音替换系统声音?
【发布时间】:2021-02-15 04:01:22
【问题描述】:

Java 类 TrayIcon,通知消息。如何用自定义声音替换系统声音? 也许我需要静音系统声音并播放我的?有什么 exec 命令可以做到这一点吗?

更新:Windows 托盘上工作通知的重要组成部分

public void notifyIt() {
    if (SystemTray.isSupported()) {
        try {
            mPromptClock.displayTray();
        } catch (AWTException e) {
            e.printStackTrace();
        }
    } else {
        System.err.println("System tray not supported!");
    }
}

private void displayTray() throws AWTException {
    SystemTray tray = SystemTray.getSystemTray();
    File f = new File("./src/res/0.jpg");
    BufferedImage image = null;
    try {
        image = ImageIO.read(f);
    } catch (IOException e) {
        e.printStackTrace();
    }
    TrayIcon trayIcon = new TrayIcon(image, "Vaqt  bo'ldi");
    trayIcon.setImageAutoSize(true);
    trayIcon.setToolTip("1st message");
    tray.add(trayIcon);
    trayIcon.displayMessage("2nd message"+navbat, "Vaqtingiz bo'ldi", TrayIcon.MessageType.INFO);//Navbat
}

【问题讨论】:

  • 嘿,那些超级 puper java 开发者在哪里 :( 。我无法在我的应用程序中替换 TrayIcon,因为它不会在打字时干扰。

标签: java windows swing audio desktop


【解决方案1】:

您无法使用 TrayIcon 执行此操作。

TrayIcon 的原生实现 displayMessage calls Shell_NotifyIconW 显示通知。您传递给此函数的 NOTIFYICONDATAW 数据不提供使用自定义音频文件的方法,但您可以设置 dwInfoFlags (NIIF_NOSOUND) 来禁用播放的声音。 TrayIcon 没有公开设置此集合的方法。

如果您想要相同的通知行为,您必须自己调用此函数并自己播放自己的声音。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-06-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-05-21
    • 1970-01-01
    • 1970-01-01
    • 2010-11-12
    相关资源
    最近更新 更多