Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javafx和wav文件_Java_Javafx_Wav - Fatal编程技术网

Javafx和wav文件

Javafx和wav文件,java,javafx,wav,Java,Javafx,Wav,我正在玩javafx,我修改了MediaPleyer演示的代码,试图复制一个wav文件。它不起作用 /* * Copyright (c) 2009, SUN Microsystems, Inc. * All rights reserved. */ package javafx.tools.fxd.demos.mediaplayer; import javafx.scene.*; import javafx.scene.media.*; import javafx.stage.*; v

我正在玩javafx,我修改了MediaPleyer演示的代码,试图复制一个wav文件。它不起作用

/*
 * Copyright (c) 2009, SUN Microsystems, Inc.
 * All rights reserved.
*/
package javafx.tools.fxd.demos.mediaplayer;

import javafx.scene.*;
import javafx.scene.media.*;
import javafx.stage.*;



var player = javafx.scene.media.MediaPlayer {
    repeatCount:  1
    media: Media {
        source: "{__DIR__}Door_Open.wav"
    };
};

class MyMediaPlayerUI extends MediaPlayerUI {
    override protected function contentLoaded()  {
        super.contentLoaded();
        var s = player.media.source;
        var i = s.lastIndexOf ("/");
        if (i >= 0) {
            s = s.substring (i + 1);
        }
        fileName.content = s;
    }
}

var stage : Stage;
var ui = MyMediaPlayerUI {};

var skins = [ "{__DIR__}MediaPlayer1.fxz", "{__DIR__}MediaPlayer2.fxz" ];
var index = 0;

ButtonController {
    pressed: bind ui.playPressed
    hovered: bind ui.playHovered
    normal: bind ui.playNormal
    activeArea: bind ui.playActiveArea
    action: function () {
        player.play ();
    }
}

ButtonController {
    pressed: bind ui.pausePressed
    hovered: bind ui.pauseHovered
    normal: bind ui.pauseNormal
    activeArea: bind ui.pauseActiveArea
    action: function () {
        player.pause ();
    }
}

ButtonController {
    pressed: bind ui.switchPressed
    hovered: bind ui.switchHovered
    normal: bind ui.switchNormal
    activeArea: bind ui.switchActiveArea
    action: function () {
        index = (index + 1) mod skins.size ();
        ui.url = skins[index];
    }
}

stage = Stage {
    title: "Media Player"
    //visible: true
    resizable: false
    onClose: function() { java.lang.System.exit (0); }
    scene: Scene {
        content: ui
    }
}
wav文件不得复制,无任何例外。 如果我将repeatCount属性更改为

repeatCount:  javafx.scene.media.MediaPlayer.REPEAT_FOREVER
最终给出一个堆空间异常:

Exception in thread "PlayerLoop" java.lang.OutOfMemoryError: Java heap space
上面的代码有什么问题吗?有没有办法重现wav文件?我认为这对于javafx是必要的,因为wavs是一种非常广泛的音频格式


谢谢。

JavaFx文档在这方面很奇怪。在一个页面上,它说播放放在jar文件中的wav文件有效;在另一个页面上,它说不起作用

对我来说,它不像对你那样有效。(有效的方法是播放未放入jar文件中的.wav文件。)

这是我的解决方案(我自己的音频播放器)

使用以下方式播放音频:

PlayAudio {
  source: "{__DIR__}audio/audio.wav"
  }.play();

JavaFx文档在这方面很奇怪。在一个页面上,它说播放放在jar文件中的wav文件有效;在另一个页面上,它说不起作用

对我来说,它不像对你那样有效。(有效的方法是播放未放入jar文件中的.wav文件。)

这是我的解决方案(我自己的音频播放器)

使用以下方式播放音频:

PlayAudio {
  source: "{__DIR__}audio/audio.wav"
  }.play();

它一定与文件本身有关,因为我尝试了Windows中的“chord.wav”,它可以工作。在这种情况下,当声音完成第一次复制并再次单击“播放”时,我会得到以下异常:线程“AWT-EventQueue-1”中的异常com.sun.media.jmc.OperationUnsupportedException:media player对等无法将媒体时间设置为给定时间:1.20703191这非常令人沮丧。这一定与文件本身有关,因为我尝试了“chord.wav”从Windows开始,它可以工作。在这种情况下,当声音完成第一次复制并再次单击“播放”时,我会遇到以下异常:线程“AWT-EventQueue-1”com.sun.media.jmc.operation不支持异常:media player对等机无法将媒体时间设置为给定时间:1.20703191这非常令人沮丧。感谢您的帮助,亚历山大,谢谢你的帮助,亚历山大。