小编Han*_*ans的帖子

无法通过websocket将视频流式传输到Firefox

我已经在websocket上编写了一些代码流视频,因此sourcebuffer可以在Chrome和Edge中使用.

但是,当我在Firefox中运行时,视频永远不会播放,只显示旋转轮动画.当我检查<video>统计信息时,它读HAVE_METADATA作就绪状态和NETWORK_LOADING网络状态.

代码如下:

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8"/>
  </head>
  <body>
    <video controls></video>
    <script>
      var mime = 'video/mp4; codecs="avc1.4D401E,mp4a.40.2"';
      var address = 'ws://localhost:54132'

      /* Media Source */

      var source = new MediaSource();
      var video = document.querySelector('video');
      video.src = URL.createObjectURL(source);
      source.addEventListener('sourceopen', sourceOpen);

      /* Buffer */

      var buffer;
      var socket;
      var queue = [];
      var offset = -1;
      var timescale;

      // When the media source opens:
      function sourceOpen() {
        buffer = source.addSourceBuffer(mime);
        buffer.addEventListener('updateend', processQueue); …
Run Code Online (Sandbox Code Playgroud)

javascript video firefox video-streaming media-source

10
推荐指数
1
解决办法
1595
查看次数

使用JemmyFX测试多个JavaFX组件

我正在开发一个包含一组自定义JavaFX组件的相当大的项目.对于每个要重用的自定义组件,我已经开始使用JemmyFX和JUnit编写一组自动化测试.在开发过程中,我从Eclipse Juno中运行它们.

一次运行整套测试已经证明是困难的.这个问题似乎源于这个事实,因为我想测试多个组件,理想情况下我会为每个组件运行一个不同的应用程序(这样在一个组件上执行的测试不会影响其他测试).

我创建了一个基类,它执行以下操作:

@BeforeClass
public static void beforeClass() {

    Thread t = new Thread("JavaFX Init Thread") {

        @Override
        public void run() {
            Application.launch(UITester.class, new String[0]);
        }
    };

    t.setDaemon(true);
    t.start();
}

使用这个基类,我创建了一个单独的类,其中@Test包含每个自定义控件的测试.当我运行这个测试套件时,第一个测试用例运行正常,但其余测试用例失败:

Exception in thread "JavaFX Init Thread" java.lang.IllegalStateException: Application launch must not be called more than once

我尝试了以下方法来解决此问题:

关闭应用程序

我在基类中添加了以下内容:

@AfterClass
public static void afterClass() {
    Platform.exit();
}

同样的问题仍然存在.也许是因为VM没有在测试之间重启?

防止重启应用程序

我输入一个静态变量来检查并查看应用程序是否已在运行.当我从Eclipse运行测试时,这会使问题消失.当我从命令行运行它们时,问题仍然存在.当我们尝试在集成服务器上运行这些测试时,这不太好.

捕获IllegalStateException

这是一个奇怪的.我可以捕获异常,并且我的大多数问题都消失了,除了整个测试套件Ubuntu的每4或5次运行崩溃到shell并且我必须重新登录的事实.

那么,我如何最好地为大量自定义控件编写测试?我的方法不正确吗?

java junit javafx-2 jemmy jemmyfx

6
推荐指数
1
解决办法
1267
查看次数

GDB 回溯中的“this”指针变化

我正在检查核心转储,并注意到在一帧中的“this”指针与下一帧(在同一线程中)不同。不仅仅是有点不同,它从 0x8167428 变为 0x200。

我不太熟悉使用 GDB,但这对我来说似乎不正确。这是否有问题,如果有,可能是什么原因?

c++ debugging gdb

5
推荐指数
1
解决办法
3659
查看次数