2015-12-04 111 views
1

我在java的JMF以下主要課,我需要提高的音頻文件test.wav IM的播放嘗試setRate instuction,但它不工作:我如何改變音頻文件播放的速度?

這裏是主類:

import javax.swing.*; 
import java.awt.*; 
import javax.media.*; 
import java.awt.event.*; 
import java.net.*; 

public class HelloJMF 
{ 

    static JFrame frame = new JFrame(" Hello JMF Player"); 

    static Player helloJMFPlayer = null; 

    public static void main(String args[]) 
    { 
     try 
     { 
      URL url=new URL("file:///d:\\testJMF.wav"); 
      helloJMFPlayer = Manager.createRealizedPlayer(url); 
     } 
     catch(Exception e) 
     { 
      System.out.println(" Unable to create the audioPlayer :" + e); 
     } 
     Component control = helloJMFPlayer.getControlPanelComponent(); 
     frame.getContentPane().add(control, BorderLayout.CENTER); 

     frame.addWindowListener(new WindowAdapter() 
     { 
      public void windowClosing(WindowEvent we) 
      { 
       helloJMFPlayer.stop(); 
       helloJMFPlayer.close(); 
       System.exit(0); 
      } 
     }); 
     frame.setSize(new Dimension(400,100)); 
     frame.setVisible(true); 
     helloJMFPlayer.start(); 
    } 
} 

我需要改變打球的速度,我想:

helloJMFPlayer.setRate(3); 

,但它不能正常工作,我需要你的幫助,請。

+1

哪個值不helloJMFPlayer.setRate(3)返回? – Berger

回答

2

理論上,一個Player對象速率可以設置爲任何實數,負數的解釋爲反向播放媒體。然而,一些媒體格式在幀之間具有依賴性,這使得它不可能或不可行,或者以反向或非標準速率播放它們是不切實際的。 要設置費率,請撥打setRate,並將時間比例因子作爲 的值。當調用setRate時,該方法返回的實際設置的速率爲 ,即使它沒有更改。 Players只保證 支持率1.0。

所以WAV格式有這種依賴關係,所以你不能改變速度。 玩得開心^ _^

請不要忘記訂閱我的回答^ _^