小编Ker*_*ker的帖子

如何以编程方式将视图和约束添加到ConstraintLayout?

我有一个问题,以编程方式向a添加视图ConstraintLayout,并设置布局工作所需的所有约束.

我现在拥有的东西不起作用:

ConstraintLayout layout = (ConstraintLayout) findViewById(R.id.mainConstraint);
ConstraintSet set = new ConstraintSet();
set.clone(layout);

ImageView view = new ImageView(this);
layout.addView(view,0);
set.connect(view.getId(), ConstraintSet.TOP, layout.getId(), ConstraintSet.TOP, 60);
set.applyTo(layout);
Run Code Online (Sandbox Code Playgroud)

ImageView甚至没有出现在布局.添加到a时RelativeLayout,它就像一个魅力.

我可以做些什么来创建我需要的约束,以便我的布局再次工作?

java android android-layout android-constraintlayout

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

Hibernate IDENTITY与SEQUENCE实体标识符生成器

"与标识不同,列值的下一个数字将从内存而不是从磁盘中检索- 这使得序列明显快于本文中定义的"身份" .这是否意味着id来自磁盘,如果是身份,如果是,则是哪个磁盘以及如何.使用序列,我可以在日志中看到一个额外的选择查询到db同时插入一个新记录.但我没有在身份的情况下在日志中找到额外的选择查询.那么序列如何变得比身份更快.

有人可以提供有关这种复杂性的宝贵见解.

java performance hibernate jpa java-ee

11
推荐指数
3
解决办法
9198
查看次数

如何将RTMP流重定向到客户端

我有一个RTMP流在与我的Spring Boot应用程序相同的服务器中广播.

例如,可以使用它访问它

RTMP://本地主机/视频直播

这是一个视频直播,从RED5服务器广播.我想将此直播流重定向到尝试请求它的任何数量的客户端.

例如:

@Service
public class RTMPStreamHandler {

@RequestMapping("/stream") {
public /*Stream Object?*/ getStream() {
   //What should be returned?
   }
}
Run Code Online (Sandbox Code Playgroud)

这种行为是必要的,这样我就可以控制何时可以访问RTMP流,因为它将在24小时内生效,但只能在其中一些中访问.我会把这个逻辑放在我的身上Controller.

如何设置SpringFramework以从该RTMP流中读取并将其广播给尝试访问该端点的用户?这是春天的可能吗?

java spring red5

9
推荐指数
1
解决办法
755
查看次数

Kotest 与 Mockk:如何清除验证计数

所以我有以下代码:

When("SMS with location update command is received") {
        every {
            context.getString(R.string.location_sms, any(), any(), any(), any())
        } returns "loc"
        mainServiceViewModel.handleSms(SmsMessage("123", "location"))

        Then("SMS with location is sent to specified phone number") {
            verify(exactly = 1) {
                smsRepository.sendSms("+123", "loc")
            }
        }
    }

    When("motion is detected") {

        Then("information SMS is sent to specified phone number") {
            verify(exactly = 1) {
                smsRepository.sendSms("+123", any())
            }
        }
    }
Run Code Online (Sandbox Code Playgroud)

问题在于,尽管第二个案例没有执行任何操作,但这两个案例都通过了。我预计第二种情况会失败,因为甚至没有调用 sendSms 方法。

  1. 如何重置 smsRepository 验证计数?
  2. 如何在每个 When 情况之前重置该计数?

bdd unit-testing kotlin mockk kotest

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

如何通过Spring Web服务器将HTTP视频流代理到任意数量的客户端

只要我在与Spring Webserver在同一网络上的服务器上播放视频HTTP流,例如在某些URL中,例如:

HTTP://本地主机:9090/httpstream

如何使用Spring将此视频流代理到任意数量的客户端?以下示例演示了所需的流程:

  1. Spring webserver可以在http:// localhost:9091/spring中找到
  2. 客户想要访问视频流,所以他将他的视频流播放器连接到http:// localhost:9091/spring(spring webserver)
  3. Spring WebServer应该将在http:// localhost:9090/httpstream上找到的流重定向到客户端,后者永远不会知道他访问了httpstream主机.连接由Spring完成,而不是由客户端完成

这是必需的,因为HTTPStream是一个不安全且未经过身份验证的主机,我想将它包装在一起Spring Webserver,以便我可以使用某种形式的安全性,例如Basic Auth.


我尝试过请求某种形式的映射,但是我找不到要返回的对象类型,也没有找到如何进行连接,但预期的行为应该是这样的:

@Controller
public class HttpStreamProxyController {

    @RequestMapping("/spring") {
    public /*Stream Object?*/ getSecuredHttpStream() {
       if (clientIsSecured) {
       //... Security information

       return   //What should be returned?
       }
   }
}
Run Code Online (Sandbox Code Playgroud)

java video spring video-streaming spring-boot

7
推荐指数
1
解决办法
2989
查看次数

如何从YAML中获取有序的HashMap?

Map我正在尝试从config.yml文件中检索 a ,但找不到保留先前设置的按键顺序的方法。

classes:
 beginner: 1000
 proplayer: 2000
 admin: 5000
Run Code Online (Sandbox Code Playgroud)

我知道classes按键组给我一个Map,但顺序与显示屏显示的不同。

我需要它按顺序排列,因为这是玩家将升级到的类别的顺序。因此,如果他是初学者,他将需要升级到职业玩家,依此类推。

我需要某种方法来解决它,这样我就可以知道初学者位于索引 0,以便猜测玩家将进入的下一个班级,在本例中为职业玩家(索引 1),但我还需要检索int班级的值,以便向玩家收取他要转到的班级的费用。

java yaml bukkit

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

尝试在 Intellij 2018.2.RC 中执行 JUnit 4 测试时出现 NoClassDefFoundError

当尝试在 Android 中执行一个非常简单的 Hello World 测试时,使用 KotlinTest:

class ExampleUnitTest : FreeSpec() {

init {
    "Test" {
        2 + 2 shouldBe 4
    }
   }
}
Run Code Online (Sandbox Code Playgroud)

尝试在 IntelliJ 中执行此操作时,通过单击绿色图标,我收到以下错误:

Exception in thread "main" java.lang.NoClassDefFoundError: org/junit/platform/launcher/TestExecutionListener
    at java.lang.ClassLoader.defineClass1(Native Method)
    at java.lang.ClassLoader.defineClass(ClassLoader.java:763)
    at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
    at java.net.URLClassLoader.defineClass(URLClassLoader.java:467)
    at java.net.URLClassLoader.access$100(URLClassLoader.java:73)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:368)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:362)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:361)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:349)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
    at com.intellij.junit5.JUnit5IdeaTestRunner.createListeners(JUnit5IdeaTestRunner.java:39)
    at com.intellij.rt.execution.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:45)
    at com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:242)
    at com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:70)
Caused by: java.lang.ClassNotFoundException: org.junit.platform.launcher.TestExecutionListener
    at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:349)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
    ... …
Run Code Online (Sandbox Code Playgroud)

android intellij-idea gradle kotlin kotlintest

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

KoinAppAlreadyStartedException:Koin 应用程序已经启动

使用 koin-2.0.1 进行 Android 测试,尽管每个测试分别通过,但无法同时测试所有 3 个测试。

class NumberFormatterUtilImplTest : KoinTest {

    private val numberFormatterUtil: NumberFormatterUtilImpl by inject()

    @Before
    fun setUp() {
        startKoin { modules(utilsModule) }
    }

    @Test
    fun `does formatter returns two digit faction if supplied one digit value`() {
        val result = numberFormatterUtil.getAdjustedCurrencyRate(18.0)
        Assert.assertEquals(result, 18.00, 1.0)
    }

    @Test
    fun `does formatter returns two digit faction if supplied multiple digits value`() {
        val result = numberFormatterUtil.getAdjustedCurrencyRate(18.12343)
        Assert.assertEquals(result, 18.12, 1.0)
    }

    @Test
    fun `does formatter returns rounded two digit faction …
Run Code Online (Sandbox Code Playgroud)

testing kotlin koin

5
推荐指数
3
解决办法
5405
查看次数

Bukkit 饥饿事件?

我正在尝试制作一个插件来消除 Minecraft 中的饥饿感。但是,我找不到它的事件!

当玩家失去饥饿时是否有一个事件?

PlayerHungerChangeEvent什么?

minecraft bukkit

4
推荐指数
1
解决办法
1068
查看次数

Android MediaCodec 输出格式:GLES 外部纹理 (YUV/NV12) 到 GLES 纹理 (RGB)

我目前正在尝试在 Android 上开发一个视频播放器,但在颜色格式方面遇到了困难。

上下文:我通过MediaExtractor/MediaCodec的标准组合提取和解码视频。因为我需要提取的帧可用作 OpenGLES 纹理 (RGB),所以我设置了解码器 ( MediaCodec ),以便它通过 SurfaceTexture提供外部 GLES 纹理 ( GL_TEXTURE_EXTERNAL_OES )。我知道我的硬件解码器输出的数据是NV12 ( YUV420SemiPlanar ) 格式,我需要通过渲染将其转换为 RGB(使用片段着色器进行转换)。

MediaCodec ---> GLES 外部纹理 (NV12) [1] ---> 渲染 ---> GLES 纹理 (RGB)

我遇到的困难是:如何访问 GLES 外部纹理 ( [1] ) 中包含的特定 Y、U 和 V 值。我不知道 GLES 纹理内存是如何设置的,也不知道如何访问它(“texture()”和“texelFetch()”GLSL 函数除外)。

  • 有没有一种方法可以像访问简单数组(指针+偏移量)一样访问数据?
  • 是不是我想太多了?
  • SurfaceSurfaceTexture是否负责转换?(我不这么认为)
  • SurfaceSurfaceTexture在填充 GLES 外部纹理 ( [1] ) 时是否会更改数据的内存布局,以便可以通过 GLES 纹理访问函数来访问组件?

rgb android opengl-es yuv android-mediacodec

4
推荐指数
1
解决办法
2033
查看次数