在 Swing GUI 中嵌入视频的简单方法

2023-11-24

我一直在寻找一种将视频嵌入到我的 Java Swing GUI 中的极其简单的方法。我在追风吗?理想情况下,我希望有这样的东西:

VideoPlayer video = new VideoPlayer("filename");
frame.getContentPane().add(video);
video.play();

我是否在寻找不存在的东西?我主要针对 Linux 进行开发,但也考虑到了 Windows,因为我将来可能会尝试使我的应用程序跨平台。

附加信息:

  • 我以前看过 JMF,对视频实际显示和播放之前所需的代码量感到不满意。我可能会再次访问它。
  • 我想到了一个可以使用 VLC 播放视频的嵌入式浏览器,但这并不是最简单的事情。
  • 我可以完全控制要播放的视频的格式。它们的数量是固定的,并且可以根据需要重新编码。

我不知道为什么您认为需要大量代码才能使用 JMF。

public class MediaPlayer extends JFrame {
    public MediaPlayer() {
        setLayout(new BorderLayout());

        //file you want to play
        URL mediaURL = //Whatever
        //create the media player with the media url
        Player mediaPlayer = Manager.createRealizedPlayer(mediaURL);
        //get components for video and playback controls
        Component video = mediaPlayer.getVisualComponent();
        Component controls = mediaPlayer.getControlPanelComponent();
        add(video,BorderLayout.CENTER);
        add(controls,BorderLayout.SOUTH);
    }
}

一个完整的媒体播放器只需 6 行代码,prob 本来可以用更少的时间完成它。如果您需要的只是基本的东西,那么我会选择 JMF。

正如 Zemzela 提到的,Xuggle 也是一个很好的解决方案,但需要更多的工作。

还有 Java 绑定 VLC。点击这里

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 Swing GUI 中嵌入视频的简单方法 的相关文章

随机推荐

  • 非空字段的流畅 Nhibernate Automap 约定

    有人可以帮忙吗 我如何指示 automap 不为空 一个专栏 public class Paper Entity public Paper DomainSignature NotNull NotEmpty public virtual st
  • 使用 jQuery 获取最后一个可见元素

    table tr class here td 1 td tr tr class here td 2 td tr tr class here style display none td 3 td tr tr class here style
  • PDO 错误消息? [复制]

    这个问题在这里已经有答案了 这是我的代码片段 qry INSERT INTO non existant table id score SELECT id 40 FROM another non existant table WHERE de
  • 在 Swift 中,Array [String] 切片返回类型似乎不是 [String]

    我正在切片一个字符串数组并将其设置为 String 变量 但类型检查器抱怨 这可能是编译器错误吗 var tags this is cool tags 1 lt 3 var someTags String tags 1 lt 3 用范围作为
  • Symfony2 - 动态表单选择 - 验证删除

    我有一个下拉表单元素 最初它是空的 但在用户进行一些交互后 它会通过 javascript 填充值 这一切都工作正常 但是 当我提交时 它总是返回验证错误This value is not valid 如果我将项目添加到表单代码中的选择列表
  • 如何将索引器与具有参数和函数调用的扩展方法一起使用

    是否可以使用indexers with extension方法 例如 仅将其视为示例 public static object SelectedValue this DataGridView dgv string ColumnName re
  • 如何检测 Protocol Buffer 消息何时被完全接收?

    这是我的一个分支其他问题 如果您愿意 请阅读它 但这不是必需的 基本上 我意识到 为了在大消息上有效使用 C 的 BeginReceive 我需要 a 首先读取数据包长度 然后准确读取那么多字节 或者 b 使用数据包结尾分隔符 我的问题是
  • 的替代方案

    The tag从来都不是官方标准 现在已被所有浏览器完全放弃 是否有符合标准的方法使文本闪烁 blink text animation 1s blinker linear infinite webkit animation 1s blink
  • 当 php 脚本仍在执行时回显消息

    我有一个使用 cURL 的 php 脚本 执行大约需要 10 15 分钟 它的作用是 它解析大约 1000 个页面以查找特定的匹配项 并且在整个脚本中我都会回显诊断消息 例如 转到下一页 找到匹配项 加载页面时出错 它现在的工作方式 也是正
  • 如何修复尝试通过改造抛出 OutOfMemoryError 时抛出的 OutOfMemoryError

    我正在使用 Retrofit 在我的应用程序中下载一些媒体文件 如视频 mp3 jpg pdf 当我想下载 55MB 的 mp4 格式的大文件时 这是一个问题 当我想下载这个文件时 我收到如下错误 OutOfMemoryError thre
  • 如何在 C# 中使用 REST,包括 PUT、POST 和 DELETE?

    我有一个 REST Web 服务 需要在 C 中使用 不过 我需要的支持不仅仅是 GET 请求 我需要 REST 完成的所有操作 包括 GET PUT POST 和 DELETE 与之交互的最佳方式是什么 我没有看到 HTTPRequest
  • 使用 Angular.js 和 Node.js 构建实时应用程序哪种更好?

    我是 Angular js 和 Node js 的初学者 但我意识到有两种可能的方法来制作实时应用程序 第一个是使用 Socket io 另一个是使用带有 setInterval 函数的 RESTful 作为客户端解决方案 我使用两种替代方
  • PHP 与 Apple 通知网关的套接字连接失败

    免责声明 所以我发现了很多类似的问题和一些答案 但没有解决我的问题 我有这个简单的 PHP 代码
  • 拦截来电ios sdk(非越狱)

    您好 我尝试了很多次 发现由于安全原因 iOS SDK 不允许我们访问以下数据 拦截来电 从来电中获取电话号码 读取通话记录 拦截短信 从收到的短信中获取电话号码并读取其内容 阻止来电 etc 以下是我搜索有关此问题的一些链接 如何从 iP
  • SQL ' ' 不会被转义

    我正在尝试通过执行以下操作在 SQL 2008 中运行查询 query varchar max SET query SELECT FROM Table WHERE Name Karl EXEC query 问题是由于某种原因周围的撇号 Ka
  • Web Api 错误地反序列化枚举列表

    因此 我使用 Web API 控制器来接受 JSON 请求 它映射到包含枚举列表的模型对象 我遇到的问题是 如果 JSON 包含无效值 它似乎无法正确反序列化 我希望将无效值映射到枚举列表中的 0 值类型 但这并没有发生 我隔离了 3 种主
  • Android模拟器:设置移动设备号码?

    有谁知道是否可以设置模拟器的手机号码 我无法在任何地方找到有关此的信息 谢谢 基本上完全控制本博客末尾详细介绍的电话号码 http blog talosintel com 2013 04 changing imei provider mod
  • ggplot2:如何为由不同颜色的线连接的点指定多种填充颜色

    I am new to ggplot2 I would like to create a line plot that has points on them where the points are filled with differen
  • fopen 函数中的 a 和 a+ 选项有什么区别?

    我无法理解C fopen api文档中 a 和 a 选项的描述 a 中的选项是追加和更新 这里的 更新 一词是什么意思 这是手册页的内容 man fopen say a 打开以追加 写在文件末尾 如果满足则创建该文件 不存在 该流位于文件末
  • 在 Swing GUI 中嵌入视频的简单方法

    我一直在寻找一种将视频嵌入到我的 Java Swing GUI 中的极其简单的方法 我在追风吗 理想情况下 我希望有这样的东西 VideoPlayer video new VideoPlayer filename frame getCont