javaaudioclip没声音_使用Java中的AudioClip播放声音 - JackRouter错误?

我对Java相对来说比较陌生,但现在我在这里进一步深入研究。

我正在创建一个程序,显示一个鸡的按钮,点击这个按钮后,会播放一个鸡咕咕声。简单,看起来,但我真的不能让音频工作。

我正在使用AudioClip来尝试完成此操作。我一直用来教自己的书,Y. Daniel Liang的Java编程入门(第八版)告诉我,尽管它的位置在非Applet程序中,我仍然可以使用AudioClip 。

尽管如此,我还是遇到了麻烦,所以这就是我迄今为止所做的。我会给你我的代码,然后给你我收到的错误。

顺便说一句,我暂时在Mac上,并没有机会在Windows上试用它。不知道为什么会影响任何东西,但是你去了。

//this is the class that plays the sound. The main class follows.

import javax.swing.JApplet;

import java.applet.*;

import java.net.URL;

public class ChickenSound extends JApplet

{

private AudioClip chSound; //creates AudioClip

public ChickenSound()

{

URL url = getClass().getResource("resources/chicken-sound.wav"); //creates a url that is the path of the soundfile

chSound = this.newAudioClip(url); //sets AudioClip equal to the url

chSound.play(); //plays AudioClip

}

}

//main class

// some of these imports are unnecessary but I will clean them up later

import java.applet.*;

import java.awt.*;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import java.net.*;

import java.net.URL;

import javax.swing.*;

public class ChickenButton extends JFrame

{

private ImageIcon chBtnIcon = new ImageIcon("resources/chicken-side.png");

private JButton chBtn = new JButton(chBtnIcon);

private JPanel panel = new JPanel(new GridBagLayout());

public ChickenButton() //main window

{

GridBagConstraints c = new GridBagConstraints();

chBtn.setBorder(BorderFactory.createEmptyBorder());

chBtn.setContentAreaFilled(false);

Font bigFont = new Font("Times New Roman", Font.BOLD, 25);

JLabel chLbl = new JLabel("Click the Chick'n");

chLbl.setFont(bigFont);

c.gridheight = 1;

c.gridx= 0;

c.gridy = 0;

c.weighty = 2;

panel.add(chLbl,c);

c.gridheight=2;

c.gridx= 0;

c.gridy = 1;

c.weighty = 2;

panel.add(chBtn, c);

add(panel);

chBtn.addActionListener(new ChLstnr()); //creates click listener for button

}

public static void main(String[] args)

{

ChickenButton window = new ChickenButton();

window.setLocationRelativeTo(null);

window.setTitle("Chick'n Button");

window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

window.setSize(300, 400);

window.setVisible(true); //creates window

}

class ChLstnr implements ActionListener

{

public void actionPerformed(ActionEvent e)

{

System.out.println("Cluck cluck cluck"); //for button functionality testing purposes (and it works)

ChickenSound chSnd = new ChickenSound(); //this is supposed to play the sound. This doesn't work.

}

}

}我收到的错误是...

2012-07-06 15:44:33.365 java[41264:ff03] Error loading /Library/Audio/Plug-Ins/HAL/JackRouter.plugin/Contents/MacOS/JackRouter: dlopen(/Library/Audio/Plug-Ins/HAL/JackRouter.plugin/Contents/MacOS/JackRouter, 262): no suitable image found. Did find:/Library/Audio/Plug-Ins/HAL/JackRouter.plugin/Contents/MacOS/JackRouter: no matching architecture in universal wrapper

2012-07-06 15:44:33.367 java[41264:ff03] Cannot find function pointer New_JackRouterPlugIn for factory 7CB18864-927D-48B5-904C-CCFBCFBC7ADD in CFBundle/CFPlugIn 0x102191490 (bundle, not loaded)我真的不知道这是什么意思。显然这与一个无法加载的音频插件有关,但我不知道。从看起来,这可能对我的电脑来说更多的错误,而不是我搞乱Java的东西,但到目前为止我还没有找到解决方案。我已经用两个IDE,Eclipse和Netbeans尝试了这一点,它们都产生相同的错误。有没有人有一个想法是什么?

任何帮助是极大的赞赏。

谢谢。

编辑:

它现在就起作用了。不知何故。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值