程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> Java經常使用的一些多媒體文件根本操作辦法簡介

Java經常使用的一些多媒體文件根本操作辦法簡介

編輯:關於JAVA

Java經常使用的一些多媒體文件根本操作辦法簡介。本站提示廣大學習愛好者:(Java經常使用的一些多媒體文件根本操作辦法簡介)文章只能為提供參考,不一定能成為您想要的結果。以下是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("您可以播放了");
    } //取得音頻對象後告訴可以播放
  }
}

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved