我想在Windows7下使用JavaFX(Java版本1.8.0_05)的MediaPlayer播放电影文件。我使用了FileChooser类,因此在我的应用程序中,可以在运行时选择本地文件和UNC网络文件。
摘自我的代码:
String textPath = ...
Path fileOnDisk = Paths.get(textPath);
...
Media media= new Media(fileOnDisk.toUri().toString());
...
MediaPlayer mediaPlayer = new MediaPlayer(media);
如果选择了本地文件,则一切正常。例如,Media对象包含以下URL(在调试器中读出):
media.url = "file:/D:/_Medien/Photo/Familie/2014_06_26%20Sensapolis%20Geburtstag%2010%20Adrian/56%20Holzgerüst%20klettern_AxelLeanderSteffen.MP4";
...媒体播放器可以毫无问题地构建。
我已将此文件复制到我的NAS驱动器。现在,如果从NAS(使用UNC语法)中选择了相同的文件,则也可以构建Media对象并包含以下url属性:
media.url = "file://VERBATIMNAS/public/Photo/Familie/2014_06_26%20Sensapolis%20Geburtstag%2010%20Adrian/56%20Holzgerüst%20klettern_AxelLeanderSteffen.MP4";
但一旦MediaPlayer构建时媒体指向UNC,我就会得到以下异常:
Exception in thread "JavaFX Application Thread" MediaException: UNKNOWN : com.sun.media.jfxmedia.MediaException: Could not create player! : com.sun.media.jfxmedia.MediaException: Could not create player!
at javafx.scene.media.MediaException.exceptionToMediaException(MediaException.java:146)
at javafx.scene.media.MediaPlayer.init(MediaPlayer.java:511)
at javafx.scene.media.MediaPlayer.<init>(MediaPlayer.java:414)
at de.kissphoto.view.mediaViewers.MovieViewer.setMedia(MovieViewer.java:216)
用UNC路径播放媒体我做错了什么...或者这是JavaFX中的一个错误?
注意:这两个文件路径不是手动输入的,而是在我的应用程序中使用JavaFX的文件选择器。
我知道我可能会因为这个答案而被责骂,但是。。。
我相信这是NIO的一个错误。因此,任何人能做的最好的事情就是绕过错误。有些变通方法比其他变通方法更优雅。这里有一个绝对有效,但相当粗糙:
new MediaPlayer(new Media(path.toUri(). toString(). replace eFirst("file://", "file:////")));
我这样做
media = new Media(file.toURI().toURL().toExternalForm());
System.out.println("media "+media.getSource());
得到这个(相同的文件通过文件树和网络,我的下载文件夹是共享的名称在名为Amd的计算机上(这里没有想象:))
媒体文件:/D:/Downloads/oow2010-2。flv
媒体file:////Amd/Downloads/oow2010-2.flv
它是有效的。我不明白你为什么这么做。jpg文件。你能用媒体播放器打开它们吗?我不能。
Desktop When building a Web Player, Unity automatically generates an HTML file next to the player data file. It contains the default HTML code to load the web player data file. 当编译一个网络播放器时,在数据文件旁,Unit
Desktop Web Player Streaming is critical for providing a great web gaming experience for the end user. The idea behind web games is that the user can view your content almost immediately and start pla
需要一些帮助。视频加载在浏览器中,但从未开始播放。我正在使用hls.js将m3u8播放列表流式传输到浏览器。并且我使用FFmpeg创建ts和m3u8文件。 对于FFmpeg: HTML代码:
问题内容: 只是一个基本的html链接问题。 我有一个Intranet设置,我需要链接到一些网络驱动器。它们位于\ server_drive \ blahblah \ doc.docx等驱动器上 在IE8或Firefox上都无法使用file://。如何链接到这些文件? 问题答案: 要从HTML文档链接到UNC路径,请使用file://///(是,这是五个斜杠)。 文件://////服务器/路径/到
Desktop To ease rapid deployment as well as testing of your web player in its intended setup, Unity comes with a selection of different templates and support for custom templates. 为了易于快速部署以及网络播放器设置测试,
我正在尝试使用VideoPlayerController从互联网播放视频。netWork()方法,但我尝试的每个url都会遇到以下指定的错误: 源错误。E/flutter(4250):[ERROR: flutter/lib/ui/ui_dart_state.cc(157)]未处理的异常:平台异常(视频错误,视频播放器有错误com.google.android.exoplayer2.ExoPlayb