大战熟女丰满人妻av-荡女精品导航-岛国aaaa级午夜福利片-岛国av动作片在线观看-岛国av无码免费无禁网站-岛国大片激情做爰视频

專注Java教育14年 全國咨詢/投訴熱線:400-8080-105
動力節點LOGO圖
始于2009,口口相傳的Java黃埔軍校
首頁 學習攻略 基礎知識分享:Java多媒體基礎

基礎知識分享:Java多媒體基礎

更新時間:2020-06-11 14:22:54 來源:動力節點 瀏覽2076次

播放幻燈片和動畫

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

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

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){}
}

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

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()停止播放。

【例12-9】能播放聲音的小應用程序

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();
????????}
????}
}

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

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("您可以播放了");
????????}?//獲得音頻對象后通知可以播放
????}
}

以上就是動力節點java培訓機構的小編針對“基礎知識分享:Java多媒體基礎”的內容進行的回答,希望對大家有所幫助,如有疑問,請在線咨詢,有專業老師隨時為你服務。

提交申請后,顧問老師會電話與您溝通安排學習

免費課程推薦 >>
技術文檔推薦 >>
主站蜘蛛池模板: 在线99| 视频在线一区二区三区 | 亚洲区精品 | 成人爽a毛片在线视频网站 成人爽视频 | 爱爱视频在线观看 | 97在线视频免费公开观看 | 国产视频在线播放 | 国四虎影永久 | 黄色在线免费观看 | 日日网站| 国产成人亚洲综合一区 | 国产免费午夜a无码v视频 | 久热精品香蕉在线视频 | 一区二区三区乱码 | 亚洲天天做日日做天天欢毛片 | 久草免费在线观看 | 亚洲天堂不卡 | julia在线播放 | 伊人久久中文字幕 | 中文字幕日韩一区二区三区不 | 久久久久久日本一区99 | 国产精品亚洲精品影院 | 午夜视频在线观看国产www | 欧美成人特黄级毛片 | 欧美人一级淫片a免费播放 欧美人与zoxxxx另类9 | 成人黄色网 | 午夜宅男在线观看 | 精品国产一区二区麻豆 | 全黄h全肉边做边吃奶在线观看 | 日本特级全黄一级毛片 | 色视频免费国产观看 | 99精品久久久久久 | 成年女人在线观看 | 国产在线看片护士免费视频 | 日韩毛片在线观看 | 高清影院|精品秒播3 | 毛片特级| 亚洲综合激情九月婷婷 | 日本在线观看www鲁啊鲁视频 | 精品在线免费视频 | 国产亚洲综合成人91精品 |