最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java常用的一些多媒體文件基本操作方法簡(jiǎn)介

 更新時(shí)間:2015年10月10日 08:52:31   投稿:goldensun  
這篇文章主要介紹了Java常用的一些多媒體文件基本操作方法,包括對(duì)音頻視頻以及幻燈片的播放,需要的朋友可以參考下

播放幻燈片和動(dòng)畫

用實(shí)例說明播放幻燈片和動(dòng)畫的方法。

【例】小應(yīng)用程序先將幻燈片讀入數(shù)組在存儲(chǔ),單擊鼠標(biāo)變換幻燈片,逐張顯示。

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; //循環(huán)逐張顯示
    repaint();
  }
  public void mouseRelease(MouseEvent e){}
  public void mouseEntered(MouseEvent e){}
  public void mouseExited(Mouse Event e){}
  public void mouseClicked(MouseEvent e){}
}

【例】小應(yīng)用程序說明播放動(dòng)畫的方法,要求播放的圖片和小程序放在相同的目錄中,程序通過快速顯示一組圖片造成顯示動(dòng)畫的效果。小應(yīng)用程序利用線程控制動(dòng)畫圖片的逐顯示。

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++){
      //載入動(dòng)畫圖片
      pic[i - 1] = getImage(getCodeBase(), "DSC0033" + i + ".jpg");
    }
  }
  public void start(){
    mythread = new Thread(this); //創(chuàng)建一個(gè)線程
    mythread.start(); //啟動(dòng)線程執(zhí)行
  }
  public void stop(){
    mythread = null;
  }
  public void run(){
    //線程的執(zhí)行代碼
    while (true){
      repaint();
      count = (count + 1) % number; //改變顯示的圖片號(hào)
      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語(yǔ)言老根據(jù)地的音頻格式有多種:au、aiff、wav、midi、rfm等。小程序要播放音頻文件,可使用類AudioClip,該類在java.applet.AudioClip類庫(kù)中定義。小程序先創(chuàng)建AudioClip對(duì)象,并用getAudioClip()方法為其初始化。代碼形式如下:

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


如果要從網(wǎng)上獲得音頻文件,可用方法getAudioClip(URL url, String name),根據(jù)url地址及音頻文件name獲得可播放的音頻對(duì)象。

控制聲音的播放有3個(gè)方法:play()播放聲音,loop()循環(huán)播放和stop()停止播放。

【例】能播放聲音的小應(yīng)用程序。

import java.applet.*;
import java.awt.*;
import java.awt.event.*;
public class Example7_9 extends Applet implements ActionListener{
  AudioClip clip; //聲明一個(gè)音頻對(duì)象
  Button buttonPlay, buttonLoop, buttonStop;
  public void init(){
    clip = getAudioClip(getCodeBase(), "2.wav");
    //根據(jù)程序所在地址處聲音文件2.wav創(chuàng)建音頻對(duì)象,
    //Applet類的getCodeBase()方法可以獲得小程序所在的html頁(yè)面的URL地址。
    buttonPlay = new Button("開始播放");
    buttonLoop = new Button("循環(huán)播放");
    buttonStop = new Button("停止播放");
    buttonPlay.addActionListener(this);
    buttonStop.addActionListener(this);
    buttonLoop.addActionListener(this);
    add(buttonPlay);
    add(buttonLoop);
    add(buttonStop);
  }
  public void stop(){
    clip.stop(); //當(dāng)離開此頁(yè)面時(shí)停止播放
  }
  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();
    }
  }
}

【例】如果聲音文件較大或網(wǎng)絡(luò)速度慢會(huì)影響小程序的初始化工作。這可用多線程技術(shù)解決。在一個(gè)級(jí)別較低的線程中完成音頻對(duì)象的創(chuàng)建,即由后臺(tái)載入聲音文件,前臺(tái)播放。

import java.applet.*;
import java.awt.*;
import java.awt.event.*;
public class Hanoi extends applet implements Runnable, ActionListener{
  AudioClip clip; //聲明一個(gè)音頻對(duì)象
  textField text;
  Thread thread;
  Button buttonPlay, buttonLoop, buttonStop;
  public void init(){
    thread = new Thread(this); //創(chuàng)建新線程
    thread .setPriority(Thread.MIN_PRIORITY);
    buttonPlay = new Button("開始播放");
    buttonLoop = new Button( "循環(huán)播放");
    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 中創(chuàng)建音頻對(duì)象
    clip = getAudioclip(getCodeBase(), "2.wav");
    text.setText("請(qǐng)稍等"); 
    if(clip ! = null){
      buttonPlay.setBackground(Color.red); buttonLoop.setBackground(Color.green); text.setText("您可以播放了");
    } //獲得音頻對(duì)象后通知可以播放
  }
}

相關(guān)文章

  • Java 中 Date 與 Calendar 之間的編輯與轉(zhuǎn)換實(shí)例詳解

    Java 中 Date 與 Calendar 之間的編輯與轉(zhuǎn)換實(shí)例詳解

    這篇文章主要介紹了Java 中 Date 與 Calendar 之間的編輯與轉(zhuǎn)換 ,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2018-07-07
  • Java業(yè)務(wù)校驗(yàn)工具實(shí)現(xiàn)方法

    Java業(yè)務(wù)校驗(yàn)工具實(shí)現(xiàn)方法

    這篇文章主要介紹了Java業(yè)務(wù)校驗(yàn)工具實(shí)現(xiàn)方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-06-06
  • MybatisPlus EntityWrapper如何自定義SQL

    MybatisPlus EntityWrapper如何自定義SQL

    這篇文章主要介紹了MybatisPlus EntityWrapper如何自定義SQL,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-03-03
  • java配置數(shù)據(jù)庫(kù)連接池的方法步驟

    java配置數(shù)據(jù)庫(kù)連接池的方法步驟

    java配置數(shù)據(jù)庫(kù)連接池的方法步驟,需要的朋友可以參考一下
    2013-05-05
  • springboot Quartz動(dòng)態(tài)修改cron表達(dá)式的方法

    springboot Quartz動(dòng)態(tài)修改cron表達(dá)式的方法

    這篇文章主要介紹了springboot Quartz動(dòng)態(tài)修改cron表達(dá)式的方法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來(lái)看看吧
    2018-09-09
  • SpringMVC參數(shù)傳遞之基本數(shù)據(jù)類型和復(fù)雜對(duì)象說明

    SpringMVC參數(shù)傳遞之基本數(shù)據(jù)類型和復(fù)雜對(duì)象說明

    這篇文章主要介紹了SpringMVC參數(shù)傳遞之基本數(shù)據(jù)類型和復(fù)雜對(duì)象說明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-10-10
  • Spring?Boot提高開發(fā)效率必備工具lombok使用

    Spring?Boot提高開發(fā)效率必備工具lombok使用

    這篇文章主要為大家介紹了Spring?Boot提高開發(fā)效率的必備工具lombok使用方法示例及步驟說明,有需要的朋友可以借鑒參考下,希望能夠有所幫助
    2022-03-03
  • Java中的Phaser使用詳解

    Java中的Phaser使用詳解

    這篇文章主要介紹了Java中的Phaser使用詳解,與其他障礙不同,注冊(cè)在phaser上進(jìn)行同步的parties數(shù)量可能會(huì)隨時(shí)間變化,任務(wù)可以隨時(shí)進(jìn)行注冊(cè),需要的朋友可以參考下
    2023-11-11
  • IDEA中設(shè)置代碼自動(dòng)提示為Alt+/的具體做法

    IDEA中設(shè)置代碼自動(dòng)提示為Alt+/的具體做法

    很多公司都強(qiáng)制性要求使用Intellij?IDEA,其實(shí)Intellij?IDEA也確實(shí)很好用,但是一下子從Eclipse跳轉(zhuǎn)到Intellij?IDEA轉(zhuǎn)也是需要一段時(shí)間的,為了迎合之前的習(xí)慣,就需要在Intellij?IDEA中改變一些設(shè)置,如代碼自動(dòng)生成,本文給大家分享設(shè)置方法,感興趣的朋友一起看看吧
    2023-01-01
  • Java?SimpleDateFormat與System類使用示例詳解

    Java?SimpleDateFormat與System類使用示例詳解

    這篇文章主要介紹了Java?SimpleDateFormat與System類使用示例,對(duì)于SimpleDateFormat類,是一個(gè)用來(lái)區(qū)分區(qū)域設(shè)置的方式進(jìn)行日期的是指,以及對(duì)日期進(jìn)行處理分析的一個(gè)實(shí)現(xiàn)類
    2022-11-11

最新評(píng)論

北海市| 辰溪县| 大连市| 丰县| 新巴尔虎右旗| 青州市| 陆良县| 江西省| 筠连县| 兴业县| 偃师市| 盐亭县| 富阳市| 漾濞| 天等县| 应城市| 华安县| 平和县| 汝州市| 沧源| 榆树市| 皮山县| 合水县| 蓝田县| 镇原县| 柳林县| 灵武市| 曲靖市| 五指山市| 马鞍山市| 台中市| 宁远县| 无棣县| 呼伦贝尔市| 固镇县| 酒泉市| 静宁县| 金昌市| 余干县| 阿拉善左旗| 托克托县|