如何更改播放音频文件的速度?

时间:2015-12-04 09:26:52

标签: java audio-streaming jmf

我在java JMF中有以下主要类,我需要增加播放音频文件test.wav即时尝试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 个答案:

答案 0 :(得分:2)

理论上,Player对象率可以设置为任何实数,为负数 费率被解释为反向播放媒体。但是,有些 媒体格式之间存在依赖关系,这使得它无法实现 反向或以非标准费率播放它们是不切实际的。 要设置费率,请拨打setRate并将时间比例因子作为a传递 ßoat值。调用setRate时,该方法返回的速率 实际设定,即使它没有改变。 Players只能保证 支持率为1.0。

因此WAV格式具有此依赖性,因此您无法更改速率。 玩得开心^ _ ^

请不要忘记订阅我的答案^ _ ^