国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|JAVA教程|ASP教程|

服務器之家 - 編程語言 - JAVA教程 - Java常用的一些多媒體文件基本操作方法簡介

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

2020-01-09 14:11goldensun JAVA教程

這篇文章主要介紹了Java常用的一些多媒體文件基本操作方法,包括對音頻視頻以及幻燈片的播放,需要的朋友可以參考下

播放幻燈片和動畫

用實例說明播放幻燈片和動畫的方法。

【例】小應用程序先將幻燈片讀入數組在存儲,單擊鼠標變換幻燈片,逐張顯示。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
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){}
}

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

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
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()方法為其初始化。代碼形式如下:

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


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

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

【例】能播放聲音的小應用程序。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
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();
    }
  }
}

【例】如果聲音文件較大或網絡速度慢會影響小程序的初始化工作。這可用多線程技術解決。在一個級別較低的線程中完成音頻對象的創建,即由后臺載入聲音文件,前臺播放。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
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("您可以播放了");
    } //獲得音頻對象后通知可以播放
  }
}

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 欧美国产伦久久久久久 | 黄色一级片免费观看 | 国产经典一区 | 在线色网站 | 午夜精品久久久久久久久久久久久 | 91国内外精品自在线播放 | 国产精品久久久久久久久久新婚 | 精品在线视频播放 | 国产日韩视频 | 亚洲国产精品视频一区二区三区 | 亚洲毛片a | 国产精品久久久久久久一区探花 | 国产精品久久国产精品 | 国产三区在线视频 | 日韩另类 | 中文字幕久久精品 | 激情一区 | 亚洲一区二区三区免费观看 | 国产欧美精品区一区二区三区 | 久青草视频在线 | 欧美大片一区 | 精品久久久久久久久久久 | 久久亚洲国产 | h视频免费观看 | 欧美日韩在线一区二区三区 | 亚洲精品男人的天堂 | 婷婷国产成人精品视频 | 国产高清在线不卡 | 国产精品久久久久一区二区三区 | 国产伦精品一区二区三区精品视频 | 亚洲五码在线 | 日韩有码在线播放 | 国产精品3区 | 婷婷激情综合 | 亚洲视频精品在线观看 | 黄视频在线观看免费 | 不卡的一区二区 | 91视频在线网址 | 欧美国产日韩一区 | 国产高清一区二区 | 色爱亚洲|