java如何开发视频软件_使用JAVA编写视频播放器

因此,如果要使用Java编写视频播放器,则只有两个选择:

使用Java编写软件的优点是它可以真正跨平台使用,并且可以与swing框架轻松灵活地结合在一起. 但是,缺点是它太麻烦了,更不用说软件的效率了,是否能够成功地重建各种主流视频格式的轮子是一个值得怀疑的问题.

因此,我采用了第二种方法,该方法使用jni调用现有的第三方视频解码库来完成视频解码任务,并将视频显示和控制的逻辑移交给Java. 这样可以提高视频播放器的效率. 值得一提的是,尽管根据平台类型调用不同的平台也可以实现跨平台,但是会受到很多限制,这是不可避免的.

让我们看看如何实现视频播放器.

接下来是代码干货. 将介绍三个基于此vlcj视频播放器的项目.

此处使用的vlcj中提供的嵌入式视频播放器组件EmbeddedMediaPlayerComponent可以通过mediaPlayer中的playMedia方法直接播放视频,并将视频呈现到EmbeddedMediaPlayerComponent. EmbeddedMediaPlayerComponent提供许多其他功能. 要实现一个通用的视频播放器,只需了解此组件即可.

package tutorial;

import java.awt.event.WindowAdapter;

import java.awt.event.WindowEvent;

import javax.swing.JFrame;

import javax.swing.SwingUtilities;

import uk.co.caprica.vlcj.component.EmbeddedMediaPlayerComponent;

import uk.co.caprica.vlcj.discovery.NativeDiscovery;

public class Tutorial {

private final JFrame frame;

private final EmbeddedMediaPlayerComponent mediaPlayerComponent;

public static void main(final String[] args) {

new NativeDiscovery().discover();

SwingUtilities.invokeLater(new Runnable() {

@Override

public void run() {

new Tutorial(args);

}

});

}

public Tutorial(String[] args) {

frame = new JFrame(“My First Media Player”);

frame.setBounds(100, 100, 600, 400);

frame.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);

frame.addWindowListener(new WindowAdapter() {

@Override

public void windowClosing(WindowEvent e) {

mediaPlayerComponent.release();

System.exit(0);

}

});

mediaPlayerComponent = new EmbeddedMediaPlayerComponent();

frame.setContentPane(mediaPlayerComponent);

frame.setVisible(true);

mediaPlayerComponent.getMediaPlayer().playMedia(args[0]);

}

}

d4b8cd05a0928fe97db50e995747059a.png

查看项目地址以获取详细信息

这是一个基于vlcj的简单视频播放器. 它支持一些简单的视频播放控制功能和弹幕功能.

此播放器的开发不是出于用Java编写视频播放器的好奇心,因此它没有提供相对完整的功能,毕竟这需要时间和精力. 只是与我之前编写的弹幕播放器结合使用,我才向该视频播放器添加了弹幕播放功能,以便可以在本地视频播放过程中播放B站的弹幕.

查看项目地址以获取详细信息

在开发过程中,我遇到了一些缺陷,例如视频渲染组件的透明性,以及由于挥杆重绘机制导致的一些界面显示错误. 有些是完全解决的,而另一些则只能通过曲线保存国家的方法来解决. 如果您在Kai中遇到了这些问题,欢迎一起讨论.

附加:

http://www.pc-fly.com/a/bofangqi/article-151040-1.html

文章知识点与官方知识档案匹配,可进一步学习相关知识Java技能树首页概览91563 人正在系统学习中 相关资源:欧德克连杆仿真设计软件Linkage_linkage软件-其它工具类资源-CSDN…

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2021年1月10日
下一篇 2021年1月10日

相关推荐