簡體   English   中英

Java Applet無法實現播放方法,JMF安裝不正確

[英]Can`t implement play method in Java Applet, improper installation of JMF

我是Java Applets的新手,我安裝了JMStudio並在項目中添加了所有.jar文件,但仍然無法正常工作。

我已經在項目>屬性> Java構建路徑>庫中安裝了.jar文件

這是我的程序:

import java.applet.*;
import java.awt.Button;
import java.awt.Graphics;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

public class design extends Applet implements ActionListener
{
    Button play,stop;
    AudioClip audioClip;
    public void init(){
      play = new Button("  Play in Loop  ");
      add(play);
      play.addActionListener(this);
      stop = new Button("  Stop  ");
      add(stop);
      stop.addActionListener(this);
      audioClip = getAudioClip(getCodeBase(), "About Time.mid");
   }

@Override
public void actionPerformed(ActionEvent ae) {
    Button source = (Button)ae.getSource();
      if (source.getLabel() == "  Play in Loop  "){
         audioClip.play();
      }  
      else if(source.getLabel() == "  Stop  "){
         audioClip.stop();
      }
   }

}

這是錯誤

java.lang.IllegalAccessError: tried to access class com.sun.media.sound.Printer from class com.sun.media.sound.HeadspaceSoundbank
at com.sun.media.sound.HeadspaceSoundbank.<init>(HeadspaceSoundbank.java:81)
at com.sun.media.sound.HsbParser.getSoundbank(HsbParser.java:69)
at javax.sound.midi.MidiSystem.getSoundbank(MidiSystem.java:535)
at com.sun.media.sound.SoftSynthesizer.getDefaultSoundbank(SoftSynthesizer.java:711)
at com.sun.media.sound.SoftSynthesizer.openStream(SoftSynthesizer.java:1150)
at com.sun.media.sound.SoftMidiAudioFileReader.getAudioInputStream(SoftMidiAudioFileReader.java:73)
at com.sun.media.sound.SoftMidiAudioFileReader.getAudioInputStream(SoftMidiAudioFileReader.java:145)
at javax.sound.sampled.AudioSystem.getAudioInputStream(AudioSystem.java:1113)
at com.sun.media.sound.JavaSoundAudioClip.<init>(JavaSoundAudioClip.java:102)
at sun.applet.AppletAudioClip.createAppletAudioClip(AppletAudioClip.java:125)
at sun.applet.AppletAudioClip.<init>(AppletAudioClip.java:66)
at sun.applet.AppletViewer.getAudioClip(AppletViewer.java:383)
at java.applet.Applet.getAudioClip(Applet.java:329)
at java.applet.Applet.getAudioClip(Applet.java:349)
at com.design.init(design.java:20)
at sun.applet.AppletPanel.run(AppletPanel.java:434)
at java.lang.Thread.run(Thread.java:745)

我想問題可能出在JMF的安裝上。。。。但是我不知道我到底在哪里錯。

請有人告訴在Eclipse中運行JMF的確切方法。

似乎發生庫沖突。 確保在eclipse的buildpath中沒有不同版本的庫。 還要看看類路徑中的其他庫。 在eclipse或其他版本中運行應用程序時,您會看到JVM使用的-D變量和-classpath。

編輯:我已經使用jre 8從eclipse啟動了applet,在構建路徑中沒有任何額外的庫。

java_build_path

在Eclipse中啟動小程序后,我得到了兩個按鈕:

小程序圖像

也許更改jre並刪除可以執行小程序的jmf庫。

問候

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM