java - 具有速度控制(恒定音高)的javafx中的视频播放器

标签 java performance video javafx media-player

我正在使用 javafx 中的视频播放器。在那个视频播放器中,我想要像播放、暂停、停止和速度控制这样的 Controller 。

我添加了一个滚动条来调整视频的速度

我希望在调整速度时,视频的音高不能改变。但是当我调整视频的速度时,它的音高会发生变化。

如何在调整速度的同时保持视频的音高不变? 谁能帮忙?

这是我在视频播放器中控制种子的代码:

// Add spped slider
        speedSlider = new Slider();
        HBox.setHgrow(speedSlider, Priority.ALWAYS);
        speedSlider.setMinWidth(10);
        //speedSlider.setMaxWidth(Double.MAX_VALUE);
        speedSlider.setMaxWidth(100);
        speedSlider.setPrefWidth(70);
        speedSlider.setValue(50);
        speedSlider.valueProperty().addListener(new InvalidationListener() 
        {
            public void invalidated(Observable ov) {
                if (speedSlider.isValueChanging() || speedSlider.isPressed()) {
                    double rate = speedSlider.getValue()/10;
                    if(rate<1)
                        rate = 0.5;
                    else if(rate < 2)
                        rate = 0.6;
                    else if(rate < 3)
                        rate = 0.7;
                    else if(rate < 4)
                        rate = 0.8;
                    else if(rate < 5)
                        rate = 0.9;
                    else if(rate < 6)
                        rate = 1;
                    else if(rate < 7)
                        rate = 1.1;
                    else if(rate < 8)
                        rate = 1.2;
                    else if(rate < 9)
                        rate = 1.3;
                    else
                        rate = 1.4;
                    mp.setRate(rate);
                 }
            }
        });
        mediaBarControl.getChildren().add(speedSlider);

最佳答案

我认为播放速度自然会影响音频输出的音高。但是,如果您必须这样做,我认为您可能希望在每次调整速度后降低每个分析样本的音高(取决于您的操作)。

关于java - 具有速度控制(恒定音高)的javafx中的视频播放器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28040602/

相关文章:

java - HIbernate 实体管理器 : How to cache queries?

java - 为什么我得到 The method rectangle(Mat, Point, Point, Scalar) is undefined for the type Core in openCV 3?

ios - 发送大尺寸图像、视频和音频时 XMPP 客户端断开连接

node.js - 从视频中剪切多个部分并将它们合并在一起

javascript - JS : save page animations into mp4

java - Spring JPA - MySQL 数据库创建外键时 Hibernate 出错

java - getQuantityString(id,quantity,formatArgs)不适用于韩文字符串

Python:如何使冒泡排序的实现更加省时?

performance - 当 base+offset 与 base 位于不同的页面时,是否有惩罚?

python - 用于检查 Python 中对象类型的字符串与枚举