Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/334.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
Java Xuggler是否有更高级别的API?_Java_Xuggle_Xuggler_Audio Video Sync - Fatal编程技术网

Java Xuggler是否有更高级别的API?

Java Xuggler是否有更高级别的API?,java,xuggle,xuggler,audio-video-sync,Java,Xuggle,Xuggler,Audio Video Sync,下载并使用Xugler后,我的初步印象非常好;它支持一整套编解码器,使用起来相对轻松,入门教程视频非常清晰地解释了所有必要的概念 然而,在玩了几天之后,为了让所有的音频和视频都能很好地同步起来,我真的非常恼火。正常播放时没关系,但当我的外置硬盘启动时,添加暂停、寻找和解释偶尔的6秒暂停时,这绝对是一场噩梦 我已经部分实现了一些东西,但还远远不够完美——你可以四处寻找几次,但过了一段时间,它仍然会消失 我忍不住想,这是Xugler的一个常见用例,肯定有人已经比我做得更好了。但遗憾的是,除了网站上的

下载并使用Xugler后,我的初步印象非常好;它支持一整套编解码器,使用起来相对轻松,入门教程视频非常清晰地解释了所有必要的概念

然而,在玩了几天之后,为了让所有的音频和视频都能很好地同步起来,我真的非常恼火。正常播放时没关系,但当我的外置硬盘启动时,添加暂停、寻找和解释偶尔的6秒暂停时,这绝对是一场噩梦

我已经部分实现了一些东西,但还远远不够完美——你可以四处寻找几次,但过了一段时间,它仍然会消失


我忍不住想,这是Xugler的一个常见用例,肯定有人已经比我做得更好了。但遗憾的是,除了网站上的例子之外,我找不到其他例子。是否有更高级别的API来管理所有音频/视频同步问题,并只提供一些更高级别的控制(播放、暂停、停止等)?如果已经没有什么东西了,我自己去做也没有问题,但我从来都不喜欢重新发明轮子(特别是如果我的新轮子很可能比旧轮子更糟糕的话!)

这确实是一个分为两部分的答案——第一部分是肯定的,有一个更高级别的“玩家”框架。它还处于早期阶段,但比我快速拼凑的任何东西都要好,我相信运行它的人会对代码的任何改进持开放态度


第二,我并没有真正去做上面的事情,因为我看了VLCJ,它使用了libVLC,而libVLC又很好地内置了所有的同步功能。要将多个播放器可靠地嵌入到应用程序中,您需要使用进程外播放器(请参阅我是如何做到这一点的),但一旦该框架就位,它就可以可靠、快速地工作,而且总体上非常好。

只是给您一个小提示。我的团队正在使用Xugler解析传入的视频流,并且,每当该流出现任何形式的损坏时,Xugler都会崩溃并导致JVM崩溃。把它扔出去:)@Jon7,谢谢你的警告。似乎所有做我想做的事情的媒体API在某个时候都倾向于这样做——我也在研究vlcj,它有一种经常使JVM崩溃的趋势,而gstreamer java绑定也在同一条船上。当然,除非你能推荐一个不需要的?:-)我想我实际上无法提出更好的替代方案,。好主意:)我们只关心相关的元数据,所以我们编写了自己的解析器来提取并丢弃视频数据。