java swing 加载慢_在Java Swing中渲染高清视频?太慢了?

本文探讨了在Java Swing应用程序中实现高效高清视频播放的方法。作者计划利用JNI调用C++库进行H.264编码和解码,并讨论了当前实现的性能表现及可能的改进方向。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

我想为我的Java Swing应用程序启用高清视频播放,但我担心可扩展性和明显缺乏直接屏幕写入访问权限。我有一个本机C ++库,它将进行编码和解码(h.264)我将通过JNI访问这个库,它将返回一个int [],我将渲染到屏幕。

到目前为止,通过JNI,编码/解码性能非常好。但是,我担心渲染开销。我想同时打开多个视频渲染,所以我想确保我以最有效的方式做事。

这是使用Java / Swing呈现视频的最有效方式吗?有什么方法可以直接写到屏幕而不必通过Java绘图系统吗?

这是我的代码的样子:

`

公共类VideoDisplay扩展了JLabel {

BufferedImage m_bufferedImage = null;

public VideoDisplay(Dimension frameSize) {

// If there is nothing to show, make sure the widget is black.

setBackground(Color.black);

m_bufferedImage = new BufferedImage(frameSize.width, frameSize.height,

BufferedImage.TYPE_INT_ARGB);

ImageIcon frameIcon = new ImageIcon(m_bufferedImage);

setIcon(frameIcon );

}

public void displayNewFrame(int[] newPixels, Dimension imageSize) {

m_bufferedImage.setRGB(0, 0, imageSize.width, imageSize.height,

newPixels, 0, imageSize.width);

repaint();

}

}`

现在,我在24FPS上显示720p视频的开销似乎是Core2 Quad 6600 CPU上CPU的6%左右。

有没有更快的方法呢?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值