小编Tan*_*ir1的帖子

如何从Java应用程序中传输实时视频?

我正在尝试寻找流式传输Java应用程序中生成的实时视频的方法.应用程序需要截取自身的屏幕截图并将其编码为视频流并发布流.

到目前为止,我一直在使用Xuggler(FFMPEG之上的Java库)将屏幕截图编码为视频文件.这非常有效.Xuggler声称能够通过RTMP传输实时视频,但我还没有找到任何关于如何以编程方式执行此操作的文档.

  1. 有谁知道如何以编程方式从Xuggler流式传输RTMP视频?
  2. 有没有人对我可以用来实现相同结果的其他库有什么建议?我更喜欢通过RTP在MPEG2中传输视频.

我没有找别人问一个非常类似的问题在Xuggler论坛这里没有响应.

我已经研究过JMF,但由于其他原因,这不是一个选择.

java video-streaming xuggle

14
推荐指数
1
解决办法
2万
查看次数

如何在Eclipse中忽略特定类型的未捕获异常?

我在我的Java应用程序中使用第三方库.此第三方库在每次应用程序启动时都会抛出自定义未捕获的异常.该例外是无害的,仅用于内部第三方库的日志记录.由于未捕获此异常,因此每次启动应用程序时都会导致Eclipse IDE切换到调试透视图并挂起线程执行,以通知我该问题.我必须手动告诉Eclipse忽略这一点,并且每次都要恢复调试.这非常烦人.我无法更改第三方库以解决此问题.

有没有办法告诉Eclipse IDE忽略特定类型的未捕获异常?

我试过"Step Filtering"但是(我认为)因为自定义未捕获异常不在堆栈跟踪中,所以它不会从调试器中过滤掉.这是我第一次涉足Step Filtering,所以我可能会错误地使用它.这是一个示例堆栈跟踪.

Daemon Thread [Thread-13] (Suspended (exception CustomThirdPartyException)) 
    ThreadPoolExecutor$Worker.run() line: not available [local variables unavailable]   
    Thread.run() line: not available
Run Code Online (Sandbox Code Playgroud)

编辑:

在禁用Eclipse中所有未捕获的异常后,jluzwick使用我们自己的记录器来监视未捕获的异常可能在技术上有效,但它并不理想,如果我们的记录器坏了,我们可能会错过任何东西.

mazaneicha的解决方案似乎在正确的轨道上,但我无法让它按照我想要的方式工作.这可能是由于我的用户错误.

jluzwick和mazaneicha都有可能解决这个问题,但Konstantin Komissarchik有"正确"的答案,因为这应该被推回到图书馆的创作者来修复.有时技术解决方案不正确.

java eclipse uncaught-exception

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

CMake 错误 - 目标 foo INTERFACE_SOURCES 属性包含以源目录为前缀的路径

我正在尝试创建一个可以通过 CMake 重用的 C++ 库。当我尝试为项目安装导出文件时失败。我不明白为什么。这是我得到的错误。

Target "Proj_LibA" INTERFACE_SOURCES property contains path:

  "C:/projects/cmake_temp/src/libA/include/liba.hpp"

which is prefixed in the source directory.
Run Code Online (Sandbox Code Playgroud)

阅读 CMake 文档和其他stackoverflow帖子意味着我设置源文件路径和/或包含目录的方式有问题。这是一个重现我的问题的 SSCE。

文件夹结构

cmake_temp/
          /build
          /install
          /src/
              /CMakeLists.txt
          /src/libA/
                   /include/liba.hpp
                   /CMakeLists.txt
                   /liba.cpp
                   /LibAConfig.cmake.in
Run Code Online (Sandbox Code Playgroud)

/src/CMakeLists.txt

cmake_minimum_required (VERSION 3.15)
project("TestProj")

set(CMAKE_CXX_VISIBILITY_PRESET hidden)
set(CMAKE_VISIBILITY_INLINES_HIDDEN 1)

set(CMAKE_LIBRARY_OUTPUT_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}")
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}")

set(include_install_dir ${CMAKE_INSTALL_PREFIX}/include/)
set(export_cmake ${CMAKE_INSTALL_PREFIX}/cmake)
set(lib_install_dir ${CMAKE_INSTALL_PREFIX}/lib)
set(bin_install_dir ${CMAKE_INSTALL_PREFIX}/bin)

add_subdirectory(libA)
#add_subdirectory(exec)
Run Code Online (Sandbox Code Playgroud)

liba/include/liba.hpp

#ifndef liba
#define liba

#include "LibA_export.hpp"

class PROJ_LIBA_EXPORT Foo
{
public:
    Foo(const int bias);
    int add(int a, int b);
private: …
Run Code Online (Sandbox Code Playgroud)

c++ cmake

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

为什么会有不兼容的指针类型警告?

我正在使用内核3.13.0编写Linux设备驱动程序,但对于为什么收到此警告感到困惑。

warning: initialization from incompatible pointer type [enabled by default]
     .read = read_proc,
     ^
warning: (near initialization for ‘proc_fops.read’) [enabled by default]
Run Code Online (Sandbox Code Playgroud)

据我所知,proc函数的file_operations设置与设备函数相同。我可以读/写到/ dev / MyDevice,没有任何问题,也没有警告。proc写入功能不会引发警告,而只会发出读取警告。我做错什么了?

/*****************************************************************************/
//DEVICE OPERATIONS
/*****************************************************************************/ 
static ssize_t dev_read(struct file *pfil, char __user *pBuf, size_t
  len, loff_t *p_off)
{
    //Not relevant to this question
}

static ssize_t dev_write(struct file *pfil, const char __user *pBuf,
                         size_t len, loff_t *p_off)
{
    //Not relevant to this question
}

static struct file_operations dev_fops =
{ //None of these cause a …
Run Code Online (Sandbox Code Playgroud)

linux kernel device-driver linux-device-driver

3
推荐指数
1
解决办法
8831
查看次数

如何使用Sun/Oracle CodeModel库键入强制转换?

我正在尝试使用Java CodeModel库来生成一些代码.在我生成的代码中,我需要执行类型转换.我想要这样的东西......

foo.setBar( ((TypeCastToThis)someVariable).getBar() );
Run Code Online (Sandbox Code Playgroud)

我在库中找到的唯一支持是使用JCast JExpr.cast(JType类型,JExpression expr).但是根据Eclipse,返回类型JCast不是公共的.确切的错误是:"类型com.sun.codemodel.JCast不可见".

这是我正在做的一个简单的例子.

import java.io.File;

import com.sun.codemodel.JBlock;
import com.sun.codemodel.JCast;  //<-- Eclipse flags this as an error
import com.sun.codemodel.JClass;
import com.sun.codemodel.JClassAlreadyExistsException;
import com.sun.codemodel.JCodeModel;
import com.sun.codemodel.JDefinedClass;
import com.sun.codemodel.JExpr;
import com.sun.codemodel.JMethod;
import com.sun.codemodel.JMod;
import com.sun.codemodel.JVar;



public class CastTest
{

    public static void main(String[] args) throws JClassAlreadyExistsException
    {
        // TODO Auto-generated method stub

        JCodeModel codeModel = new JCodeModel();
        JDefinedClass testClass = codeModel._class("MyTestClass");

        JMethod testMeth = testClass.method(JMod.PUBLIC, codeModel.VOID, "TypeCastTestMethod");

        JBlock testMethBody = testMeth.body();

        JVar castMeVar = …
Run Code Online (Sandbox Code Playgroud)

java code-generation sun-codemodel

2
推荐指数
1
解决办法
1601
查看次数

如何在Java中创建类似于"动态枚举"的常量分组?

在Java中声明来自多个库的常量分组有哪些选择?

例如,我有一个网络消息协议.该协议具有一些标准消息,并允许创建自定义消息.每条消息都有一个唯一的ID号.我真的想将所有这些唯一ID组合到我的应用程序中的枚举中.就像是...

public enum MessageType
{
    //Standard messages in one library
    FooMsg(1),
    BarMsg(2),

    //Custom messages in another library
    MyCustomMessage(100),
    MyOthercustomMessage(101);

    private long msgNumber;
    public long getMessageNumber(long msgNumber) { return msgNumber;}

    public static MessageType fromMessageNumber(long messageNumber)
    {
    //Reverse lookup code here...
    }

    //Few more utilities that don't matter for this question

    private MessageType(long msgNumber)
    {
        this.msgNumber = msgNumber;
    }
}
Run Code Online (Sandbox Code Playgroud)

然后我可以创建一个消息类型的通用方法.

public void doStuff(MessageType msgType, MyMessageObject data)
{
   switch(msgType)
   {
      case FooMsg: //Do stuff
       break;
    //Other stuff
   }
}
Run Code Online (Sandbox Code Playgroud)

但是,枚举要求我在编译时知道所有消息类型,但消息分布在多个库中.其中一些库是可选的加载,因此如果它们未加载,我不想将它们包含在枚举中.

有没有办法在运行时定义一个"常量集合",其功能类似于枚举?

java reflection enums

2
推荐指数
1
解决办法
43
查看次数