슬라이드쇼 및 애니메이션 재생
예제를 사용하여 슬라이드 및 애니메이션 재생 방법을 설명합니다.
[예제] 작은 응용 프로그램은 먼저 슬라이드를 배열로 읽어서 저장한 다음 마우스를 클릭하여 슬라이드를 변경하고 하나씩 표시합니다.
import java.applet.*import java.awt.*;import java.awt.event.*;public class 예제7_7 확장 Applet는 MouseListener를 구현합니다. final int number = 50; //50개의 슬라이드가 있다고 가정합니다. int count = 0; ] 카드 = 새 이미지[번호]; public void init(){ addMouseListener(this) for (int i = 0; i < number; i++){ 카드[i] = getImage(getCodeBase(), "DSC0033" + i + ".jpg"); } } public void 페인트(그래픽 g){ if ((card[count]) != null) g.drawImage(card[count], 10 , 10, 카드[개수].getWidth(this), 카드[개수].getHeitht(this), 이) } 공개 무효 mousePressed(MouseEvent e){ count = (count + 1) % number; //루프 및 표시 repaint(); } public void mouseRelease(MouseEvent e){} public void mouseEntered(MouseEvent e){} public void mouseExited(마우스 이벤트 e){} public void mouseClicked(MouseEvent e){}}
[예제] 애니메이션 재생 방법을 설명하는 애플릿입니다. 재생되는 사진과 동일한 디렉토리에 애플릿이 있어야 합니다. 프로그램은 이미지 그룹을 빠르게 표시하여 애니메이션을 표시하는 효과를 만듭니다. 작은 응용 프로그램은 스레드를 사용하여 애니메이션 그림의 표시를 하나씩 제어합니다.
import java.applet.*;import java.awt.*;import java.awt.event.*;public class example7_8은 Runnable을 구현합니다. final int number = 50 Thread Mythread; 새로운 이미지[숫자]; 공개 무효 초기화(){ setSize(300, 200) for (int i = 0; i <= 숫자; i++) //애니메이션 사진 로드 pic[i - 1] = getImage(getCodeBase(), "DSC0033" + i + ".jpg") } } public void start(){mythread = new Thread(this); threadmythread.start(); //스레드 실행 시작} public void stop(){mythread = null } public void run(){ //스레드 실행 코드 while(true){ repaint(); = (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), 이것); }}
소리 재생
Java 언어의 이전 기반에는 au, aiff, wav, midi, rfm 등 다양한 오디오 형식이 있습니다. 애플릿에서 오디오 파일을 재생하려면 java.applet.AudioClip 클래스 라이브러리에 정의된 AudioClip 클래스를 사용할 수 있습니다. 애플릿은 먼저 AudioClip 객체를 생성하고 getAudioClip() 메서드를 사용하여 초기화합니다. 코드 형식은 다음과 같습니다.
AudioClip audioClip = getAudioClip(getCodeBase(),"myAudioClipFile.au");
인터넷에서 오디오 파일을 얻으려면 getAudioClip(URL url, 문자열 이름) 메소드를 사용하여 URL 주소와 오디오 파일 이름을 기반으로 재생 가능한 오디오 객체를 얻을 수 있습니다.
사운드 재생을 제어하는 방법에는 세 가지가 있습니다. 사운드를 재생하는 play(), 재생을 반복하는 loop(), 재생을 중지하는 stop()입니다.
[예시] 소리를 재생할 수 있는 작은 애플리케이션입니다.
import java.applet.*;import java.awt.*;import java.awt.event.*;public class example7_9 확장 Applet 구현 ActionListener{ AudioClip 클립; //오디오 객체 선언 Button Play, ButtonLoop, buttonStop public void init; (){clip = getAudioClip(getCodeBase(), "2.wav"); //프로그램 주소에 사운드 파일 2.wav를 기반으로 오디오 객체를 생성하고, //Applet 클래스의 getCodeBase() 메소드는 애플릿이 위치한 HTML 페이지의 URL 주소를 얻을 수 있습니다. ButtonPlay = new Button("재생 시작");buttonStop = new Button("재생 중지")buttonStop.addActionListener(this); (this); add(buttonLoop); add(buttonStop) } public void stop(); //이 페이지를 떠날 때 재생을 중지합니다.} public void actionPerformed(ActionEvent e){ if (e.getSource() == ButtonPlay){clip.play() } else if (e.getSource() ==buttonLoob){clip .loop(); } else if (e.getSource() == 버튼Stop){clip.stop() } }
[예제] 사운드 파일이 크거나 네트워크 속도가 느린 경우 미니프로그램 초기화에 영향을 미치게 됩니다. 이는 멀티스레딩 기술로 해결될 수 있습니다. 오디오 객체 생성은 하위 수준 스레드에서 완료됩니다. 즉, 사운드 파일이 백그라운드에 로드되고 포그라운드에서 재생됩니다.
import java.applet.*;import java.awt.*;import java.awt.event.*;public class 하노이는 Runnable을 구현하는 ActionListener{ AudioClip 클립; //오디오 객체 선언 textField 스레드 텍스트; ,buttonLoop,buttonStop; public void init(){ thread = new Thread(this) //새 스레드 생성 .setPriority(Thread.MIN_PRIORITY); 버튼플레이 = new Button("재생 시작"); 버튼루프 = new Button("재생 중지"); text = new textField(12); .addActionListener(this);buttonStop.addActionListener(this);buttonLoop.addActionListener(this); add(buttonStop); add(text); } Public void start(){ thread.start() } public void actionPerformed(ActionEvent e); if (e.getSource() == 버튼플레이(){ 클립.플레이(); } else if (e.getSource() == 버튼루프(){ 클립.루프(); } else if (e.getSource() ==buttonStop(){clip.stop(); } } public void run(){ //스레드에서 오디오 객체 클립 생성 thread = getAudioclip(getCodeBase(), "2.wav"); text .setText("잠시만 기다려주세요"); if(clip ! = null){buttonPlay.setBackground(Color.red); text.setText("재생할 수 있습니다") } //오디오 객체를 얻은 후 알림을 재생할 수 있습니다.}}