当前位置:  技术问答>java相关

No Sound. Help!

    来源: 互联网  发布时间:2015-09-10

    本文导语:  要发疯了,就是发不出声音:(没有任何异常) import javax.swing.*; import java.applet.*; import java.net.URL; import java.net.MalformedURLException; import java.io.*; public class Untitled1 {   public Untitled1() {   }   public static void main(St...

要发疯了,就是发不出声音:(没有任何异常)
import javax.swing.*;
import java.applet.*;
import java.net.URL;
import java.net.MalformedURLException;
import java.io.*;
public class Untitled1 {
  public Untitled1() {
  }
  public static void main(String[] args) {
    JFrame frame=new JFrame();
    try{
    File annoyingFile = new File("C:/TestJsp/defaultroot/sound/msg.wav");
    AudioClip annoying = Applet.newAudioClip(annoyingFile.toURL());
    annoying.play();
    } catch(MalformedURLException e){ System.exit(0); }
    frame.setDefaultCloseOperation(3);
    frame.setSize(100,200);
    frame.setVisible(true);
  }
}

JBuilder7

|
如果声音文件不能被查找,将不会有出错信息,仅仅是沉默。

|
参考一下:(我也没有用过)希望能对你有帮助!

 AudioClip接口

播放
循环
停止

恢复和播放声音最简单的方法是通过Applet类的play()方法。调用play()方法有如下二种方式: 

play()-带有一个参数,一个 URL对象,装载并演奏储存在 URL处的声音片断。

play()-带有二个参数,基本 URL和文件夹路径名,装载并演奏声音文件。第一参数经常是对getCodeBase()或 getDocumentBase()的调用。 

下列代码片断举例说明了直接播放 hello.au的方法。AU文件与小应用程序位于相同文件夹或目录。

play(getCodeBase(), "hello.au");

play()一旦被调用立刻开始恢复和播放声音。如果声音文件不能被查找,将不会有出错信息,仅仅是沉默。
启动和停止声音文件,或循环播放,你必须用 applet的 getAudioClip方法把它装载进入 AudioClip对象,类似上面play()方法的参数,getAudioClip方法要用一个或两个参数,当作播放的指示。 第一个或唯一的一个参数是 URL参数,用来指示声音文件的位置,第二参数是文件夹路径指针。 

下列代码行举例说明加载声音文件进入剪贴对象: 

AudioClip co = getAudioClip(getCodeBase(), "horns.wav");

getAudioClip()方法仅仅能被applet内调用。随着JAVA2的引入,应用程序也能用Applet类的newAudioClip方法装入声音文件。前一例子可以改写如下以用于Java应用程序:

AudioClip co = newAudioClip("horns.wav");

在你已创建 AudioClip对象之后,你能用该对象调用play()、loop()以及stop()方法。如果 getAudioClip或 newAudioClip方法不能找到指定的声音文件, AudioClip对象的值将是空的。试着播放空对象会导致出错,所以标准的过程首先是对该条件进行检测。
接下来是一个完整的程序设计示例,该程序将产生一个applet,当鼠标在该小应用程序applet范围内按下时会播放 flute+hrn+mrmba.au音乐样本。此AU示例文件与applet在相同目录或文件夹下的。

import java.applet.*;
import java.awt.event.*;

public class PlayAudio extends Applet
implements MouseListener {
AudioClip audio;

public void init() {
audio = getAudioClip(getDocumentBase(),
"flute+hrn+mrmba.au");
addMouseListener(this);
}

public void mousePressed(MouseEvent evt) {
if (audio != null) audio.play();
}

public void mouseEntered (MouseEvent me) {
}

public void mouseExited (MouseEvent me) {
}

public void mouseClicked (MouseEvent me) {
}

public void mouseReleased(MouseEvent me) {
}

}

注意: 在许多JAVA2技术书籍中,mouseDown()方法确实是JAVA 1.0事件模型的一部分。使用该方法会有一定的危险,因为该方法在将来可能不会被支持。在JAVA2平台下将MouseListener与mousePressed结合使用是优先的选择。


|
不知道,帮你up一下

    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • java命名空间javax.sound.midi接口synthesizer的类成员方法: unloadinstrument定义及介绍
  • 可视化算法排序过程 Sound of Sorting
  • java命名空间javax.sound.midi接口synthesizer的类成员方法: issoundbanksupported定义及介绍
  • 我的/usr/src/linux/driver/sound目录
  • java命名空间javax.sound.midi接口synthesizer的类成员方法: unloadallinstruments定义及介绍
  • 請問kernel 2.4能使用alsa sound driver嗎
  • java命名空间javax.sound.midi接口synthesizer的类成员方法: unloadinstruments定义及介绍
  • 在redhat8.0下如何配声卡。没有sndconfig命令。setup中也没有sound configration。怎么办?<0b>
  • java命名空间javax.sound.midi接口synthesizer的类成员方法: loadallinstruments定义及介绍
  • sound problem
  • java命名空间javax.sound.sampled接口line的类成员方法: addlinelistener定义及介绍
  • About sound driver's properties...
  • java命名空间java.awt.event类keyevent的类成员方法: vk_dead_semivoiced_sound定义及介绍
  • 怎樣在redhat 9.0 安裝 pci sound card
  • java命名空间java.awt.event类keyevent的类成员方法: vk_dead_voiced_sound定义及介绍
  • fedora安装 alsa-driver提示 install: 无法获取"include/sound/*.h"
  • java命名空间javax.sound.midi类midisystem的类成员方法: getsynthesizer定义及介绍
  • 请教一个sound有关的问题?
  • java命名空间javax.sound.sampled接口line的类成员方法: removelinelistener定义及介绍
  • java命名空间javax.sound.midi接口midichannel的类成员方法: getprogram定义及介绍
  • java命名空间javax.sound.sampled接口line的类成员方法: getcontrols定义及介绍


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3