java幻灯片播放代码_java_Java常用的一些多媒体文件基本操作方法简介,播放幻灯片和动画 用实例说 - phpStudy...

Java常用的一些多媒体文件基本操作方法简介

播放幻灯片和动画

用实例说明播放幻灯片和动画的方法。

【例】小应用程序先将幻灯片读入数组在存储,单击鼠标变换幻灯片,逐张显示。

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

import java.awt.event.*;

public class Example7_7 extends Applet implements MouseListener{

final int number = 50; //假定幻灯片有50张

int count = 0;

Image[] card = new Image[number];

public void init(){

addMouseListener(this);

for (int i = 0; i < number; i++){

card[i] = getImage(getCodeBase(), "DSC0033" + i + ".jpg");

}

}

public void paint(Graphics g){

if ((card[count]) != null)

g.drawImage(card[count], 10, 10, card[count].getWidth(this),card[count].getHeitht(this), this);

}

public void mousePressed(MouseEvent e){

count = (count + 1) % number; //循环逐张显示

repaint();

}

public void mouseRelease(MouseEvent e){}

public void mouseEntered(MouseEvent e){}

public void mouseExited(Mouse Event e){}

public void mouseClicked(MouseEvent e){}

}

【例】小应用程序说明播放动画的方法,要求播放的图片和小程序放在相同的目录中,程序通过快速显示一组图片造成显示动画的效果。小应用程序利用线程控制动画图片的逐显示。

import java.applet.*;

import java.awt.*;

import java.awt.event.*;

public class Example7_8 extends Applet implements Runnable{

final int number = 50;

int count = 0;

Thread mythread;

Image[] pic = new Image[number];

public void init(){

setSize(300, 200);

for (int i = 0; i <= number; i++){

//载入动画图片

pic[i - 1] = getImage(getCodeBase(), "DSC0033" + i + ".jpg");

}

}

public void start(){

mythread = new Thread(this); //创建一个线程

mythread.start(); //启动线程执行

}

public void stop(){

mythread = null;

}

public void run(){

//线程的执行代码

while (true){

repaint();

count = (count + 1) % number; //改变显示的图片号

try{

mhythread.sleep(200);

}

catch (InterruptedExeception e){}

}

}

public void paint(Graphics g){

if ((pic[count] != null)

g.drawImage(pic[count], 10, 10, pic[count].getwidth(this), pic[count].getHeight(this), this);

}

}

播放声音

Java语言老根据地的音频格式有多种:au、aiff、wav、midi、rfm等。小程序要播放音频文件,可使用类AudioClip,该类在java.applet.AudioClip类库中定义。小程序先创建AudioClip对象,并用getAudioClip()方法为其初始化。代码形式如下:

AudioClip audioClip = getAudioClip(getCodeBase(),”myAudioClipFile.au”);

如果要从网上获得音频文件,可用方法getAudioClip(URL url, String name),根据url地址及音频文件name获得可播放的音频对象。

控制声音的播放有3个方法:play()播放声音,loop()循环播放和stop()停止播放。

【例】能播放声音的小应用程序。

import java.applet.*;

import java.awt.*;

import java.awt.event.*;

public class Example7_9 extends Applet implements ActionListener{

AudioClip clip; //声明一个音频对象

Button buttonPlay, buttonLoop, buttonStop;

public void init(){

clip = getAudioClip(getCodeBase(), "2.wav");

//根据程序所在地址处声音文件2.wav创建音频对象,

//Applet类的getCodeBase()方法可以获得小程序所在的html页面的URL地址。

buttonPlay = new Button("开始播放");

buttonLoop = new Button("循环播放");

buttonStop = new Button("停止播放");

buttonPlay.addActionListener(this);

buttonStop.addActionListener(this);

buttonLoop.addActionListener(this);

add(buttonPlay);

add(buttonLoop);

add(buttonStop);

}

public void stop(){

clip.stop(); //当离开此页面时停止播放

}

public void actionPerformed(ActionEvent e){

if (e.getSource() == buttonPlay){

clip.play();

}

else if (e.getSource() == buttonLoob){

clip.loop();

}

else if (e.getSource() == buttonStop){

clip.stop();

}

}

}

【例】如果声音文件较大或网络速度慢会影响小程序的初始化工作。这可用多线程技术解决。在一个级别较低的线程中完成音频对象的创建,即由后台载入声音文件,前台播放。

import java.applet.*;

import java.awt.*;

import java.awt.event.*;

public class Hanoi extends applet implements Runnable, ActionListener{

AudioClip clip; //声明一个音频对象

textField text;

Thread thread;

Button buttonPlay, buttonLoop, buttonStop;

public void init(){

thread = new Thread(this); //创建新线程

thread .setPriority(Thread.MIN_PRIORITY);

buttonPlay = new Button("开始播放");

buttonLoop = new Button( "循环播放");

buttonStop = new Button("停止播放");

text = new textField(12);

buttonPlay.addActionListener(this);

buttonStop.addActionListener(this);

buttonLoop.addActionListener(this);

add(buttonPlay);

add(buttonLoop);

add(buttonStop);

add(text);

}

public void start(){

thread.start();

}

public void stop(){

clip.stop();

}

public void actionPerformed(ActionEvent e){

if (e.getSource() == buttonPlay(){

clip.play();

}

else if (e.getSource() == buttonLoop(){

clip.loop();

}

else if (e.getSource() == buttonStop(){

clip.stop();

}

}

public void run(){

//在线程thread 中创建音频对象

clip = getAudioclip(getCodeBase(), "2.wav");

text.setText("请稍等");

if(clip ! = null){

buttonPlay.setBackground(Color.red); buttonLoop.setBackground(Color.green); text.setText("您可以播放了");

} //获得音频对象后通知可以播放

}

}

相关阅读:

编写轻量ajax组件第三篇实现

分享7款开源Java反编译工具

Java使用synchronized修饰方法来同步线程的实例演示

导致adb无法启动的5种情况和解决方法

php中过滤非法字符的具体实现

Excel导入oracle的几种方法

ERROR: Error in Log_event::read_log_event()

Java使用ByteArrayOutputStream 和 ByteArrayInputStream 避免重复读取配置文件的方法

Android开发实现的电话窃听和拦截应用

javascript的函数作用域

win10系统日期时间在哪里修改?win10修改电脑时间的方法

php数组去除空值函数分享

jQuery实现鼠标双击Table单元格变成文本框及输入内容后更新到数据库的方法

Win10便笺oneNote如何开通 Win10便笺oneNote开通方法

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值