2011-11-26 86 views
0

我讀過關於Java音頻剪輯之前的問題都做我的研究,但我仍然想不通爲什麼這個 音頻剪輯不能播放。 .wav剪輯在Eclipse IDE中運行良好,它也位於相應的目錄中;如果文件 位於不正確的目錄中,則此代碼段會引發錯誤消息。Java的音頻剪輯 - 沒有聲音,沒有錯誤

我的教授要求我們採用這種格式也起到了音頻剪輯,audioClip = Applet.newAudioClip(new File(filePath).toURI().toURL());

當底部執行的播放方法但是不會被調用沒有聲音! 任何幫助,將不勝感激。

import java.applet.*; 
import java.awt.*; 
import java.awt.event.*; 
import java.io.File; 
import java.net.MalformedURLException; 

public class PlaySoundApplet extends Applet implements ActionListener 
{ 
    private static final long serialVersionUID = 1L; 
    Button play,stop; 
    AudioClip audioClip; 

    public void init() 
    { 
     play = new Button("Play"); 
     add(play); 
     play.addActionListener(this); 

     stop = new Button("Stop"); 
     add(stop); 
     stop.addActionListener(this); 

     try 
     { 
      String filePath = "." + File.separator + "audio" + File.separator + "island_music.wav"; 

      File file = new File(filePath); 

      if (file.exists()) 
      { 
       audioClip = Applet.newAudioClip(file.toURI().toURL()); 
      } 
      else 
      { 
       throw new RuntimeException("Directory " + filePath + " does not exist"); //debugging 
      } 
     } 
     catch (MalformedURLException malformedURLException) 
     { 
      throw new RuntimeException("Malformed URL: " + malformedURLException); //debugging 
     } 
    } 

    public void actionPerformed(ActionEvent ae) 
    { 
     Button source = (Button)ae.getSource(); 

     if (source.getLabel() == "Play") 
     { 
      audioClip.play(); 
      System.out.println("Play was executed"); 
     } 
     else if(source.getLabel() == "Stop") 
     { 
      audioClip.stop(); 
      System.out.println("Stop was executed"); 
     } 
    } 
} 
+1

*「被弄不過調用沒有聲音!」 *不喊!用簡單的['leftright.wav'](http://pscode.org/media/#sound)試試代碼。你的家庭作業是否指定這必須是一個小程序? –

+0

哇... leftright.wav的作品!所以我猜我必須嘗試不同類型的.wav文件? –

回答

0

嘗試代碼的簡單leftright.wav

..the leftright.wav的作品!

大多數媒體格式(聲音,圖像,視頻等)被稱爲「容器格式」。媒體的編碼可能有多種類型。 Java讀取一些編碼,但不是其他編碼。

所以我猜我必須嘗試不同類型的.wav文件?

如果是應用程序資源,我傾向於將當前的WAV轉換爲與Java Sound兼容的類型。

0

你的意思是在你建立你的程序並運行它後,聲音不起作用嗎?您應該將wav文件嵌入您的資源文件夾並使用getResources()來查找文件。或者另一種選擇是掃描本地目錄以找到具有匹配名稱和文件擴展名的文件對象。無法提供示例代碼關閉我的頭頂部抱歉(從手機打字)。

而且你扔的格式不正確的URL例外,所以你不會得到一個錯誤,如果該URL是錯誤的。你不應該拋出它...使用try {...} catch(MalformedURLException mex){system.out.println(mex.getMessage())};代替。

+0

如果出現格式錯誤,我會在控制檯中看到一條消息,但是從未拋出過。 –