Java 使用vlcj将音频数据提取到内存中
我想使用vlcj(,版本4.2.0)将音频数据提取到内存中。我不想同时播放视频,只要在性能允许的情况下尽快提取音频数据即可 现在我正在使用一种基于以下内容的变通方法:,即先将数据输出到文件,然后读取文件。虽然此解决方案可行,但它不是最佳解决方案,而且需要占用磁盘空间 也许可以修改上面的示例,将音频定向到回调 第二个例子是:Java 使用vlcj将音频数据提取到内存中,java,libvlc,vlcj,Java,Libvlc,Vlcj,我想使用vlcj(,版本4.2.0)将音频数据提取到内存中。我不想同时播放视频,只要在性能允许的情况下尽快提取音频数据即可 现在我正在使用一种基于以下内容的变通方法:,即先将数据输出到文件,然后读取文件。虽然此解决方案可行,但它不是最佳解决方案,而且需要占用磁盘空间 也许可以修改上面的示例,将音频定向到回调 第二个例子是: 在那个例子中,音频数据被提取到内存中,这就是我想要的。但它也在窗口中播放视频,这不是我想要的。也许可以修改该示例,以某种方式关闭视频,并使其尽可能快地运行?遗憾的是,这里没
在那个例子中,音频数据被提取到内存中,这就是我想要的。但它也在窗口中播放视频,这不是我想要的。也许可以修改该示例,以某种方式关闭视频,并使其尽可能快地运行?遗憾的是,这里没有完美的答案 使用已找到的
DirectAudioPlayerTest.java
,您可以更改媒体播放器出厂创建以传递此参数,以防止打开视频窗口:
factory = new MediaPlayerFactory("--novideo");
您将以VLC解码的速率将音频接收到内存缓冲区中,因此如果您有5分钟的视频,则需要5分钟来提取音频-这并不理想
这是vlcj唯一可以在内存中获取音频数据的方法
您发现的RipAudioTest.java
IIRC尽可能快地提取音频,这可能比正常的播放速度快得多,但在这里,您无法将解码后的音频直接捕获到java应用程序中
因此,您已有的解决方案,首先将曲目翻录到磁盘,实际上可能是使用vlcj可以实现的最佳解决方案(因为它可能比使用direct audio player快得多)。谢谢!在这种情况下,以实时速度运行不是一个选项,因此我认为我必须继续使用RipAudioTest.java方法。