java - 如何更改音频文件的播放速率?

标签 java audio-streaming jmf

我在java JMF中有以下主类,我需要增加音频文件test.wav的播放,我尝试setRate指令,但它不起作用:

这是主类:

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);

但它不起作用,我需要你的帮助。

最佳答案

理论上,玩家对象率可以设置为任何实数,负数 速率解释为反向播放媒体。然而,一些 媒体格式在帧之间具有依赖性,这使得不可能 或者反向或以非标准速率播放它们是不切实际的。 要设置速率,您可以调用 setRate 并将时间比例因子作为 ß float 值。当调用 setRate 时,该方法返回的速率为 实际上已经设置了,即使它没有改变。 玩家仅保证 支持1.0的速率。

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

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

关于java - 如何更改音频文件的播放速率?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34084868/

相关文章:

java - Jersey Response.ok() 没有给出 200 OK

java - 在 Java 中使用多级 HashMap 的最佳实践

带 NAudio 的音频中继器

php - 转换为 raw 的音频文件是否保留以前的采样率?

java - JMF 输出流

java - 如何在 Crafter Studio 2.5 中删除权限?

java - 如何读取Java中我们的系统(PC声卡或扬声器)正在播放的音频流

java - 使用 JMF 将多路复用音频/视频录制到文件

java - YUV Format.YUV420 和 Color Space.YUV420 有什么区别?

java - 如何在 Apache CXF 中生成带有 5 个 header 的 JWT token ?