首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 相關知識

[JAVA100例] 第78例:Applet 播放聲音文件實戰

     編輯:Java 相關知識

本例演示如何在 Java Applet 中使用 AudioClip 類加載並播放聲音文件,通過按鈕控制播放、循環播放與停止操作。

核心代碼解析

import java.applet.*;
import java.awt.event.*;
import java.awt.*;

public class PlayAudio extends Applet implements ActionListener {
  AudioClip audio;
  Button btExit, btOpen, btPlay, btLoop, btStop;

  public void init() {
    // 加載聲音文件(相對於文檔基礎 URL)
    audio = getAudioClip(getDocumentBase(), "img/1.mid");
    
    // 構建界面:FlowLayout + 三個按鈕
    setLayout(new FlowLayout());
    btPlay = new Button("Play");
    btPlay.addActionListener(this);
    btLoop = new Button("Loop");
    btLoop.addActionListener(this);
    btStop = new Button("Stop");
    btStop.addActionListener(this);
    add(btPlay); add(btLoop); add(btStop);
  }

  public void actionPerformed(ActionEvent e) {
    if (e.getSource() == btPlay) play();
    else if (e.getSource() == btLoop) loop();
    else if (e.getSource() == btStop) stop();
  }

  public void play() {
    if (audio != null) stop();  // 先停止再播放,避免重疊
    audio.play();
  }

  public void loop() {
    if (audio != null) audio.loop();  // 循環播放
  }

  public void stop() {
    if (audio != null) audio.stop();  // 停止播放
  }
}

關鍵技術點

  • AudioClip 獲取:getAudioClip(URL base, String path) 從指定基礎 URL 加載音頻
  • 三大控制方法:play()(單次)、loop()(循環)、stop()(停止)
  • 事件處理:實現 ActionListener,通過 e.getSource() 區分按鈕
  • 資源路徑:getDocumentBase() 返回包含 Applet 的 HTML 頁面 URL,相對路徑 "img/1.mid" 需確保文件存在

部署說明

  1. 編譯生成 PlayAudio.class
  2. 準備聲音文件 1.mid 放置於 Web 目錄下的 img/ 文件夾
  3. HTML 頁面嵌入:<applet code="PlayAudio.class" width="300" height="100"></applet>
  4. 瀏覽器需支援 Java Applet(現代瀏覽器多已棄用,建議用 AppletViewer 測試)

遷移建議

Applet 技術已過時(JDK 9 標記棄用,JDK 11 移除),現代 Web 音頻播放請使用 HTML5 <audio> 標籤 或 Web Audio API,具備更好兼容性與性能。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved