Java 媒体:在JAR中播放WAV文件

Java 媒体:在JAR中播放WAV文件,java,javafx-2,Java,Javafx 2,媒体-类只有一个构造函数:公共媒体(java.lang.String源代码)请参阅 此构造函数获取一个URI作为字符串。我有一个JavaFX项目,在这个项目中放了一个WAV文件。当我将项目部署为JAR时,我可以看到(以7-Zip为例),WAV文件也被导出。获取内容没有问题 MyApplicationClass.class.getResourceAsStream("/resources/test.wav"). 但是对于媒体构造函数,在部署的JAR中引用这个WAV文件的正确URI是什么?URI n

媒体
-类只有一个构造函数:
公共媒体(java.lang.String源代码)
请参阅

此构造函数获取一个URI作为字符串。我有一个JavaFX项目,在这个项目中放了一个WAV文件。当我将项目部署为JAR时,我可以看到(以7-Zip为例),WAV文件也被导出。获取内容没有问题

MyApplicationClass.class.getResourceAsStream("/resources/test.wav").
但是对于
媒体
构造函数,在部署的JAR中引用这个WAV文件的正确URI是什么?URI

new Media("jar:.!/resources/test.wav")
不起作用。URI
“jar:resources/test.wav”
也会失败(因为没有对jar文件的引用)

有人知道正确的URI吗?

试试这个

new Media(MyApplicationClass.class.getResource("/resources/test.wav").toURI().toString())

Media接受jar URI,因此应该可以正常工作

谢谢
ViMu.class.getResource(“/audio/click\u track\u a.wav”).toURI().toString()
给出了正确的URI
jar:file:/C:Users/oliver/Desktop/ViMu.jar!音频/单击_track_a.wav
并正确创建
媒体
对象,因为没有
媒体不可用
。但是通过使用
MediaPlayer
来播放它,我无法在这里播放它。通过URI
文件:/D:/Workspace/vimu/bin/audio/click_track_a.wav
我可以在这里找到它;URLDASURCE uds=新的URLDASURCE(url);connect();Player=Manager.createPlayer(uds);好的,谢谢。我将考虑JMF,希望JavaFX <代码> Media<代码>将接受未来的代码<代码>输入流< /代码>。问题是WAV文件的长度。我用1S WAV进行了测试,效果很好。MediaPlayer有很多缺陷:)这对有效的MP4视频资源不起作用(使用1.8.0_51)~25s视频将播放一次,然后冻结。当我将jarurl复制到一个临时文件并将其用作源文件时,它将循环@Vertex是的,JavaFX通常都有很多缺陷。