小编Saj*_*uzi的帖子

android - 什么是android中的消息队列本机轮询?

我知道线程有一个消息队列,处理程序能够将runnables或消息推送到它们,但是当我使用Android Studio工具分析我的android应用程序时,有一个奇怪的过程:

android.os.MessageQueue.nativePollOnce

它使用CPU比所有其他进程更多.它是什么以及如何减少CPU花费的时间?您可以在下面找到分析器结果.

在此输入图像描述

java profile cpu performance android

19
推荐指数
1
解决办法
7759
查看次数

开玩笑 - 有没有办法检查测试覆盖率?

我使用以下命令来运行我的测试并获得覆盖率报告:

jest --coverage
Run Code Online (Sandbox Code Playgroud)

现在我想在我的脚本文件中检查覆盖率是否超过90%.我该怎么办 ?

automated-tests node.js jestjs

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

如何在Android的视频中添加文字?

在我的应用中,我录制了一个视频,我想在该视频的右下角覆盖我公司的网址。我使用MediaRecorder录制视频,但是录制没有问题,但是在视频中添加文字并没有成功。我搜索并找到了一些库,例如FFmpeg和JavaCV,这些库可以让用户在视频上覆盖文本,但是我不知道是否有任何方法可以在Android中使用它们。之后,找到OnPreviewFrame,它返回camerapreivew的每一帧。我想在用户触摸录制按钮后获取所有帧,并使用画布在每个帧上绘制文本,然后将所有这些帧保存在一起,直到停止录制视频,并且视频持续时间固定为15秒。这是一个好的解决方案吗?如果是,应该如何实现OnPreviewFrame函数?我知道怎么画画布,但是我不知道

video android ffmpeg canvas bitmap

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

android - 设置mediacodec的演示时间

我使用波纹管代码将原始数据编码为h264以创建视频,并且编码得非常好,但视频播放速度太快.似乎演示时间存在问题.当记录开始时,我设置"tstart"的值,并为每个帧计算当前时间与tstart的差异,并将其传递给queueinputbuffer但没有任何改变.哪个部分有问题?我知道在android 4.3中我可以将表面传递给mediacodec,但我想支持android 4.1.提前致谢.

 public void onPreviewFrame(final byte[] bytes, Camera camera) {
                    if (recording == true) {
                        long time = System.nanoTime();
                        time -= tstart;
                        if(mThread.isAlive()&&recording == true) {
                            encode(bytes, time );

                        }

                    }
 }

private synchronized void encode(byte[] dataInput,long time)
{
    byte[] data=new byte[dataInput.length];
    NV21toYUV420Planar(dataInput,data,640,480);

    inputBuffers = mMediaCodec.getInputBuffers();// here changes
    outputBuffers = mMediaCodec.getOutputBuffers();

    int inputBufferIndex = mMediaCodec.dequeueInputBuffer(-1);

    if (inputBufferIndex >= 0) {
        ByteBuffer inputBuffer = inputBuffers[inputBufferIndex];
        inputBuffer.clear();
        inputBuffer.put(data);
        time/=1000;
        mMediaCodec.queueInputBuffer(inputBufferIndex, 0, data.length, time, 0);

    } else {
        return;
    }

    MediaCodec.BufferInfo bufferInfo …
Run Code Online (Sandbox Code Playgroud)

java android encode mediacodec mediamuxer

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