小编cs *_*guy的帖子

侧栏中不存在 Strapi 角色和权限插件?

我通过 NPX 设置了 Strapi 并运行

npx create-strapi-app my-project --quickstart
Run Code Online (Sandbox Code Playgroud)

我正在使用 Strapi,这是我的侧边栏

在此处输入图片说明

通常我希望它是这样的:

在此处输入图片说明

我不知道为什么,但我无法访问角色和权限选项卡,因为它不存在。我需要此选项卡用于 API 权限自定义。我检查了文档,它说应该有以下内容:

“该插件提供了一种通过基于 JWT 的完整身份验证过程来保护您的 API 的方法。该插件还带有一个 ACL 策略,允许您管理用户组之间的权限。

要访问插件管理面板,请单击左侧菜单中的角色和权限链接。”

我不知道我的仪表板出了什么问题。我如何访问这个插件?

strapi

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

Flutter Dart Dio Get Request 太慢了

我在数字海洋中托管一个空间 - 它基本上是数字海洋的 Amazon S3 等价物。我的 dio 问题是,我正在使用 dio 向 10MB 大小的文件发出获取请求。该请求在我的手机上需要大约 9 秒,但在我的浏览器中需要 3 秒。我的自定义后端也有这个问题。使用 dio(使用 dart 的 http 模块)发出的请求似乎非常慢。我需要解决这个问题,因为我需要不时向用户传输 50MB 的数据。为什么 dio 对 GET 请求反应缓慢?

我怀疑这可能是这里的根本原因检查

await Dio().get(
        "Remote_Url_I_can_not_share",
        onReceiveProgress: (int downloaded, int total) {
          listener
              .call((downloaded.toDouble() / total.toDouble() * metadataPerc));
        },
        cancelToken: _cancelToken,
      ).catchError((err) => throw err);
Run Code Online (Sandbox Code Playgroud)

dart flutter dio

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

FFmpeg 编码 aac 音频,编码文件无法播放

我正在尝试对 aac 音频进行编码。MP2 的例子在这里。我遵循了这个文档。我通过调用以下代码对音频进行编码,startEncoding并在 2 秒后调用stopEncoding. 一切似乎都运行良好,我得到了一个大小不一的文件,但问题是我无法打开或播放它。我不知道为什么。我一定是在代码中做错了什么。

标题:

class MediaEncoder {
public:
    MediaEncoder(char *filePath);

    void startEncoding();
    void stopEncoding();

    void encode(AVFrame *frame);
    bool isEncoding() const;

    void startEncoderWorker();

    int32_t check_sample_fmt(enum AVSampleFormat sample_fmt);
    
    bool signalExitFuture = false;
    int32_t ret;

private:
    std::future<void> encodingFuture;
    AVCodecContext *avCodecContext;
    AVFrame *avFrame;
    AVPacket *avPacket;
    AVCodec *codec;
    FILE* file;
};
Run Code Online (Sandbox Code Playgroud)

cp:

MediaEncoder::MediaEncoder(char *filePath){
    buffer = std::make_unique<LockFreeQueue<float>>(recorderBufferSize);

    /* find the encoder */
    codec = avcodec_find_encoder(AV_CODEC_ID_AAC);
    avCodecContext = avcodec_alloc_context3(codec);

    avCodecContext->bit_rate = 64000;

    /* check that the …
Run Code Online (Sandbox Code Playgroud)

c++ ffmpeg

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

Flutter C++ 内存分配导致光栅线程卡顿 - Android NDK Dart FFI

我有一个 Flutter 应用程序,用于Dart ffi连接到我的自定义 C++ 音频后端。在那里我为我的音频缓冲区分配了大约 10MB 的总内存。每个缓冲区有 10MB / 84 的内存。我使用 84 音频播放器。这是 ffi 流程:

C++ 桥:

extern "C" __attribute__((visibility("default"))) __attribute__((used))
void *
loadMedia(char *filePath, int8_t *mediaLoadPointer, int64_t *currentPositionPtr, int8_t *mediaID) {
    LOGD("loadMedia %s", filePath);

    if (soundEngine == nullptr) {
        soundEngine = new SoundEngine();
    }

    return soundEngine->loadMedia(filePath, mediaLoadPointer, currentPositionPtr, mediaID);
}
Run Code Online (Sandbox Code Playgroud)

在我的声音引擎中,我启动了一个 C++ 线程:

void loadMedia(){

    std::thread{startDecoderWorker,
                    buffer,
    }.detach();
 }

void startDecoderWorker(float*buffer){
     buffer = new float[30000]; // 30000 might be wrong here, I entered a huge value …
Run Code Online (Sandbox Code Playgroud)

c++ android flutter dart-ffi

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

AVAudioPlayer 循环不是无缝的

我正在创建并播放 AVAudioPlayer,如下所示:

playerOne = try AVAudioPlayer(contentsOf: URL.init(fileURLWithPath: path))
playerOne.numberOfLoops = -1
playerOne.prepareToPlay()
Run Code Online (Sandbox Code Playgroud)

我正在播放 AAC 文件。我在用

playerOne.play(atTime: startTime)
Run Code Online (Sandbox Code Playgroud)

安排将来的播放并同步多个 AVAudioPlayer。

一切正常,但我的问题是,当声音循环时,它们会不同步,这是由于循环不无缝造成的。

这里发生的情况是,由于 aac 解码器,我相信在解码的音频数据中添加了额外的小静音,这导致音频播放器之间的同步丢失。我期望这个循环是完美的,从结束到开始循环之间的间隙为 0。

如何使用 AVAudioPlayer 实现无缝循环?

avaudioplayer ios

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

为什么哈希表插入时间复杂度最坏情况不是N log N

查看哈希表的基本结构。我们知道它会调整 WRT 负载因子或其他一些确定性参数的大小。我知道,如果在插入中达到调整大小限制,我们需要创建一个更大的哈希表并将所有内容插入其中。这是我不明白的事情。

让我们考虑一个哈希表,其中每个桶都包含一个 AVL 平衡 BST。如果我的哈希函数为每个键返回相同的索引,那么我会将所有内容存储在同一个 AVL 树中。我知道这个哈希函数将是一个非常糟糕的函数并且不会被使用,但我在这里做了最坏的情况。因此,一段时间后,我们可以说已经达到了调整大小因子。因此,为了调整大小,我创建了一个新的哈希表,并尝试将所有旧元素插入到以前的表中。由于哈希函数将所有内容映射回一棵 AVL 树,因此我需要将所有 N 个元素插入到同一个 AVL 中。AVL 树上的 N 次插入是 N logN。那么为什么哈希表的最坏插入情况被认为是 O(N) 呢?

下面是向AVL中添加N个元素的证明,三是N logN: 向空AVL树中添加N个元素的运行时间

hashtable time-complexity

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

Flutter Navigator - 从页面堆栈中交换页面

我的情况有点乏味。我正在向导航器推送 2 页

甲乙

B 被推到最后。

由于某些原因。我不想弹出 B 从 B 导航到 A。我想替换/交换它们。原因在于国家。我想保留 A 和 B 页面的状态,因为有些小部件的构建成本非常高(Unity 视图小部件)。从 B 如何使用 Navigator 以便在不破坏我的页面的情况下我可以将 B 与 A 交换?

这是流程:

  • A 作为默认页面打开。

  • B被推

    Navigator.of(context).pushNamed();

    页面堆栈是 A - B

  • 从 BI 想要导航到 A 同时仍然保持 B 页面活着。

  • -经过一些神奇的操作后,我失踪了 -

  • 页面堆栈是 B - A。用户看到页面 A。没有页面被破坏。他们被交换了。

有没有办法在 Flutter 中做到这一点?

flutter

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

Dart ffi - 从 C++ 调用 Dart

我正在制作一个 flutter 应用程序,其中我的后端为 C++。当用户进入某个屏幕时,通过 dart ffi 我发出加载调用信号。我的问题是我正在用 C++ 加载音频,但我想向 dart 发出加载已完成的信号,以便我可以停止显示加载屏幕。AFAIK,没有办法从 C++ 调用 dart。我看到你可以使用 FromFunction。来源在这里

如何调用没有参数的 void 类方法?或者如何从 C++ 调用 dart 代码?

Ps:我认为目前这是不可能做到的(没有解决方法)。Dart 开发人员请添加此功能,因为能够调用 dart 来处理信息非常有用

c++ ffi dart-ffi

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

AppLifeCycleState.detached 未被调用

import 'package:flutter/material.dart';

void main() => runApp(MyApp());

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter Demo',
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: MyHomePage(),
    );
  }
}

class MyHomePage extends StatefulWidget {
  @override
  _MyHomePageState createState() {
    return _MyHomePageState();
  }
}

class _MyHomePageState extends State<MyHomePage> with WidgetsBindingObserver {
  @override
  void initState() {
    super.initState();
    WidgetsBinding.instance.addObserver(this);
  }

  @override
  void dispose() {
    WidgetsBinding.instance.removeObserver(this);
    super.dispose();
  }

  @override
  void didChangeAppLifecycleState(AppLifecycleState state) {
    print(state);
  }

  @override
  Widget build(BuildContext context) {
    return WillPopScope(
      onWillPop: …
Run Code Online (Sandbox Code Playgroud)

flutter

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

Dijkstra算法中优先级队列的空间复杂度

谁能告诉我这个 Dijkstra 算法中优先级队列的空间复杂度。请注意,此处一个顶点可以多次添加到队列中。然而,由于访问集的原因,它不会被处理多次。这就是为什么我想知道队列的最大大小可以达到的原因。

def shortestReach(n, edges, start,target):

    adjList = collections.defaultdict(list)

    for parent, child, cost in edges:
        parent -= 1
        child -= 1
        adjList[parent].append((child, cost))
        adjList[child].append((parent, cost))

    priorityQueue = queue.PriorityQueue()
    priorityQueue.put((0, start))
    visited = set()
    while priorityQueue.qsize() > 0:
        costPar, parent = priorityQueue.get()

        if parent == target:
            return costPar

        if parent not in visited:
            for adj in adjList[parent]:
                child, cost = adj
                priorityQueue.put((cost + costPar, child))

        visited.add(parent)
Run Code Online (Sandbox Code Playgroud)

dijkstra space-complexity

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