当前位置: 源码素材网 » Java教程 » 详情页

Java通过页面获取声音文件并播放

  •   时间:2019-05-15
  • 概述:播放声音

Java通过页面获取声音文件并播放,我们打开页面的时候经常能获取包含在页面中的声音文件,从而听到声音。本例通过编程来实现获取页面中的声音文件,并产生一个线程每五秒播放一次此声音。运行程序,用浏览器打开useRelativeBeep.html 文件,打开此页面下的声音文件,并每隔五秒播放一次。

实现方法:Applet 类有五个从页面下载声音的方法。两个play()方法下载声音文件并立即播放它,两个getAudioClip()方法和静态Applet.newAudioClip()方法存储声音文件,以便重放。在getAudioClip()方法中,使用url 来发现声音文件的位置,使用filename 来表示声音文件名。例如:

AudioClip ac = getAudioClip(new URL("http://www.baidu.com/","gong.au"));

通过Thread.currentThread()的setPriority()方法来设置线程优先级。用Thread 的sleep()方法来每隔5 秒播放一次声音。程序代码:

1.编写useRelativeBeep 类的基本框架,该类继承了Applet 类,实现了Runnable 接口,该类包括获得声音文件的AudioClip 对象变量beep 和判断线程运行状态的布尔型变量stopped,该类还包括init()方法、start()方法、stop()方法和run()方法,代码如下:

public class useRelativeBeep extends Applet implements Runnable
{
private AudioClip beep;
private boolean stopped = false;
//初始化
public void init();
public void start();
public void stop();
public void run();
}

2.init()方法对此小应用程序进行初始化,代码如下:

public void init()
{
this.beep = this.getAudioClip(this.getDocumentBase(), "sounds/beep.au");
if (this.beep != null)
{
Thread t = new Thread(this);
t.start();
}
}

3.start()方法用于启动小应用程序,代码如下:

public void start()
{
this.stopped = false;
}

4.stop()方法用于停止小应用程序,代码如下:

public void stop()
{
this.stopped = true;
}

5.run()方法用于调用线程,对线程进行处理,代码如下:

public void run()
{
//设置线程优先级
Thread.currentThread().setPriority(Thread.MIN_PRIORITY);
while (true)
{
//播放声音
if (!stopped) this.beep.play();
try
{
//线程挂起
Thread.sleep(5000);
}
catch (InterruptedException e)
{}
}
}

6.UseRelativeBeep 类引入如下包:

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

7.编写嵌入此小应用程序的HTML 文件,命名为useRelativeBeep.html,代码如下:

<head>
<title>use Relative Beep</title>
</head>
<body bgcolor=#ffffff text=#000000>
<h1>use Relative Beep</h1>
<P>
<applet code=useRelativeBeep width=1 height=1>
</applet>
</P>
<hr>
Last Modified Dec 14, 2002<br>
<a href="http://www.sohu.com">Copyright 2002 sohu</a><br>
<a href="mailto:master@sohu.com">master@sohu.com</a>
</body>
</html>

    相关声明:

      若“Java通过页面获取声音文件并播放”有损您的权益,请告之我们删除内容。
      部分文章来源于网络,版权归原作者所有。