小编Ale*_*nko的帖子

如何将模块包含到项目中?

有一个库

https://github.com/Yalantis/uCrop

有 2 个模块Sample-ucrop所有逻辑都位于其中

问题是 - 当我将ucrop模块复制到我的项目时也添加了这个

dependencies {
...
 implementation project(':ucrop')
....
}
Run Code Online (Sandbox Code Playgroud)

和这个

settings.gradle include ':ucrop', ':app'

据我所知,我只需要添加这一行即可将新模块包含到项目中

然后我尝试编译应用程序并收到这样的错误

解决此 BuildableArtifact 只能在任务执行期间完成。

模块“ucrop”是一个没有构建变体的 Android 项目,无法构建。请修复 build.gradle 文件中的模块配置并再次同步项目。

我的项目不想包含新模块的原因是什么?

请随意询问

谢谢

android

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

如何从 MP4 中逐帧获取?(媒体编解码器)

实际上我正在使用 OpenGL,我想将我所有的纹理都放在 MP4 中以压缩它们。

然后我需要从我的 Android 上的 MP4 中获取它

我需要以某种方式解码 MP4 并根据请求逐帧获取。

我找到了这个 MediaCodec

https://developer.android.com/reference/android/media/MediaCodec

和这个 MediaMetadataRetriever

https://developer.android.com/reference/android/media/MediaMetadataRetriever

但是我没有看到如何逐帧请求的方法......

如果有人用过MP4,请给我一个去哪里的方法。

PS我正在使用本机方式(JNI),所以怎么做都无所谓..Java或本机,但我需要找到方法。

编辑1

我制作了某种电影(只有一个 3d 模型),所以我每 32 毫秒更改一次几何和纹理。因此,在我看来,将 mp4 用于 tex 似乎是合理的,因为每个新帧(32 毫秒)都与原始帧非常相似......

现在我为一个模型使用 400 帧。对于几何,我使用 .mtr,对于 tex,我使用 .pkm(因为它针对 android 进行了优化),所以我有大约 350 个 .mtr 文件(因为有些文件包含子索引)和 400 个 .pkm 文件......

这就是为什么我要为 tex 使用 mp4 的原因。因为一个 mp4 比 400 .pkm 小得多

编辑2

请看一下 Edit1

实际上,我需要知道的只是可以MP4按帧读取的Android API ?也许某种getNextFrame()方法?

像这样的东西

MP4Player player = new MP4Player(PATH_TO_MY_MP4_FILE);

void readMP4(){
   Bitmap b;

   while(player.hasNext()){ …
Run Code Online (Sandbox Code Playgroud)

mp4 android opengl-es android-mediacodec

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

如何正确从资源中获取Color(JetpackCompose)?

我需要使用资源来支持不同的颜色BuildVars,所以我有Color.kt定义颜色的文件,问题是如果我从colors.xml这样的资源中获取颜色

val MyWhiteColor: Color = Color(R.color.my_white_color)
Run Code Online (Sandbox Code Playgroud)

并像这样使用它

    Text(
        text = ...,
        style = TextStyle(
            color = MyWhiteColor
        )
    )
Run Code Online (Sandbox Code Playgroud)

但是,如果我将实现更改为,我会得到蓝色而不是白色

val MyWhiteColor: Color = Color(android.graphics.Color.parseColor("#FFFFFF"))
Run Code Online (Sandbox Code Playgroud)

它按预期工作,我得到白色。

我缺少什么?colors.xml为什么当我从颜色中获取值时会转换为蓝色?

android-jetpack android-jetpack-compose android-compose-textfield

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

Android Camera2 API JPEG_QUALITY不可用

我正在尝试使用Android处理我的Nexus 5x Camera2 APIs并使用googlesamples android-Camera2Basic

我的问题是JPEG图像的质量太低,而且它的尺寸远小于我用手机相机应用拍摄的常规图像.

根据谷歌文档JPEG_QUALITY,CaptureRequest和CaptureResult中都应该有一个键:

JPEG_QUALITY

在API级别21中添加

密钥JPEG_QUALITY

最终JPEG图像的压缩质量.

85-95是典型的使用范围.

有效值范围:

1-100; 越大越高质量

此密钥适用于所有设备.

但是,当我要求可用的密钥时,JPEG_QUALITY密钥不可用,所以我不知道如何知道我目前使用的JPEG压缩质量是什么以及如何更改它.

我在里面做的代码:

CameraCaptureSession.CaptureCallback CaptureCallback
                = new CameraCaptureSession.CaptureCallback() {

            @Override
            public void onCaptureCompleted(@NonNull CameraCaptureSession session,
                                           @NonNull CaptureRequest request,
                                           @NonNull TotalCaptureResult result) {


                //_TEST_DEBUG
                List<CaptureRequest.Key<?>> requestKeys = request.getKeys();
                List<CaptureResult.Key<?>> resultKeys = result.getKeys();
Run Code Online (Sandbox Code Playgroud)

requestKeys&resultKeys有许多键,包括JPEG_ORIENTATION但不是JPEG_QUALITY键.

知道我做错了什么吗?为什么我找不到如何改变JPEG压缩质量?

谢了,兄弟们

android android-camera2

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

如何从AVFoundation获得光照值?

我使用Swift 3并使用相机AVFoundation

谁知道有没有办法知道光的容量?

我知道其中一种方法是使用环境光传感器,但它不鼓励,最终应用程序不允许在市场上

我发现问题非常接近我需要的问题

检测iPhone是否在黑暗的房间里

那家伙解释说我可以用 ImageIO framework, read the metadata that's coming in with each frame of the video feed

- (void)captureOutput:(AVCaptureOutput *)captureOutput didOutputSampleBuffer:(CMSampleBufferRef)sampleBuffer fromConnection:(AVCaptureConnection *)connection {
  CFDictionaryRef metadataDict = CMCopyDictionaryOfAttachments(NULL, sampleBuffer, kCMAttachmentMode_ShouldPropagate);
  NSDictionary *metadata = [[NSMutableDictionary alloc] initWithDictionary:(__bridge NSDictionary*)metadataDict];
  CFRelease(metadataDict);
  NSDictionary *exifMetadata = [[metadata objectForKey:(NSString *)kCGImagePropertyExifDictionary] mutableCopy];
  float brightnessValue = [[exifMetadata objectForKey:(NSString *)kCGImagePropertyExifBrightnessValue]  floatValue];
}
Run Code Online (Sandbox Code Playgroud)

但我是iOS的新手,不知道如何在Swift中转换这段代码

提前致谢!

ios swift

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

创建DispatchQueue Swift3的方法有何不同

我是斯威夫特的新秀,有这样的误解

如何创建调度队列有什么区别

样品1

let backgroundQueue = DispatchQueue(label: "com.app.queue",
                                qos: .background, 
                                target: nil)

backgroundQueue.async {
print("Dispatched to background queue")
}
Run Code Online (Sandbox Code Playgroud)

样本2

let backgroundQueue = DispatchQueue.global()
backgroundQueue.async {
print("Dispatched to background queue")
}
Run Code Online (Sandbox Code Playgroud)

据我所知,这两种方法都是一样的

或者例如这种方法

DispatchQueue.global(qos: .userInitiated).async {
print("user initiated task")
}
Run Code Online (Sandbox Code Playgroud)

这是什么意思?

grand-central-dispatch swift

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

Android Q 上的 AMediaExtractor setDataSource AMEDIA_ERROR_UNSUPPORTED 错误

我正在使用AMediaCodecAMediaExtractor,在所有设备上一切正常(我希望:),但是如果我在 Android Q 上检查相同的代码(在我的情况下是 Pixel 2XL),我会得到这样的错误AMEDIA_ERROR_UNSUPPORTED

我做什么

bool NativeCodec::createStreamingMediaPlayer(const std::string &filename)
{
    AMediaExtractor *ex = AMediaExtractor_new();
    media_status_t err = 
      AMediaExtractor_setDataSource(ex, filename.c_str());;  <-- Here media status I got AMEDIA_ERROR_UNSUPPORTED 

    if (err != AMEDIA_OK)
    {
        __android_log_print(ANDROID_LOG_ERROR, "ERROR", "ERROR ::: %s", std::to_string(err).c_str());
        return false;
    }

    .....
}
Run Code Online (Sandbox Code Playgroud)

也许这与 Android Q 中引入的隐私有关,但我没有找到任何有关它的信息......

如何检查这个问题呢?

media android mediaextractor android-mediacodec android-10.0

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

如何在 WPF 中创建 TableLayoutPanel?

我使用 WinForms 并且有一个选项可以创建TableLayoutPanel.

例如:我需要将我的窗口分为顶部和底部两部分,我希望顶部占据窗口的 70%,底部占据窗口的 30%...

现在,我正在使用WPF并根据此

https://www.codeproject.com/Articles/30904/WPF-Layouts-A-Visual-Quick-Start

WPF很多不同的布局,但我没有找到任何与双海相同的布局TableLayoutPanel- 我可以设置我需要多少行以及每行应该占用多少窗口。

怎么做?

c# wpf

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

如何从 res xml 设置文本 (Jetpack Compose) 的字体大小?

我对dimen.xml我在该应用程序上使用的所有内容都有自己的看法。现在有了jetpack compose,我也想在这里使用这些定义

有一段文字:

...
    Text(
        text = stringResource(id = R.string.brandname),
        fontSize = 12.sp
    )
...
Run Code Online (Sandbox Code Playgroud)

我可以从资源中获取文本,但是,我无法12.sp从中获取价值dimen.xml,我正在尝试这样做

...
    Text(
        text = stringResource(id = R.string.brandname),
        fontSize = dimensionResource(id = R.dimen.brandname_size)
    )
...
Run Code Online (Sandbox Code Playgroud)

fontSize我在行类型不匹配、必需TextUnit、已找到中遇到错误Dp

我在这里缺少什么?

android-jetpack android-jetpack-compose android-compose-textfield

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

如何使 Surface 背景透明 (Jetpack Compose)

我有这样的实现

Surface(
                    modifier = Modifier.background(Color.Transparent),
                    shape = RoundedCornerShape(corner = CornerSize(2.dp)),
                    border = BorderStroke(width = 1.dp, color = showpageColorAgvotBoarder)
                ) {
                    Text(
                        modifier = Modifier.padding(2.dp),
                        text = item,
                        style = ShowpageAgvotStyle
                    )
                }
Run Code Online (Sandbox Code Playgroud)

我得到的结果是

在此输入图像描述

就像整个背景是黑色的一样,然而,表面背景是白色的......

我只需要一个边框,表面的背景应该是透明的(在这种情况下黑色,因为整个背景是黑色的)

我究竟做错了什么?

android android-jetpack android-jetpack-compose android-jetpack-compose-material3

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