小编Jam*_*urn的帖子

Android - 在两个webview之间维护SCORM API

我正在从webview启动SCORM兼容课程,该课程又打开包含课程本身的另一个webview.我希望在原始webview中维护API,以便在关闭后从包含该课程的webview接收响应.

我尝试将两个webview添加到一个页面,其中webview一个包含启动页面,webview两个包含课程但是当我关闭webview时,两个数据在webview中没有更新.

javascript api android scorm webview

5
推荐指数
0
解决办法
293
查看次数

FFMPEG 将视频叠加在另一个视频之上

我已经浏览了 stackoverflow 上的所有问题,但没有一个答案对我有用。

我有一个屏幕录制的 mp4 视频和另一个从网络摄像头录制的 mp4 视频。我想将网络摄像头视频覆盖在屏幕录制视频的左上角。

我想我终于找到了执行此操作的正确命令行,但是当我单步执行 ffmpeg 进程时,它在到达“ handler_name :SoundHandler”时冻结。

这是我的命令行:

string overlayPosition = "movie=" + '"' + _videoFile.FileName + '"' + "[inner]; [in][inner] overlay [out]";
string overLayCommand = "-i " + '"' + videoList[0].Path + '"' + " -vf " + '"' + overlayPosition + '"' +  + '"' + " C:\\Users\\james\\output.mp4" + '"';
Run Code Online (Sandbox Code Playgroud)

有谁知道我做错了什么?我已经成功地修剪音频和视频、裁剪视频、加入声音、加入视频以及加入声音和视频,但无法使叠加工作:(。

c# video overlay ffmpeg

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

在非异步方法中返回异步任务的正确方法

返回以下任务时的最佳实践是什么:

public async Task<Command> BuildCommunicationCommand
Run Code Online (Sandbox Code Playgroud)

作为一个对象:

public Command BuildCommand
Run Code Online (Sandbox Code Playgroud)

我有以下内容:

 public Command BuildCommand()
    {
        return BuildCommunicationCommand().GetAwaiter().GetResult();
    }
Run Code Online (Sandbox Code Playgroud)

但被告知要尝试避免这种情况,并且我应该等待任务,这样我们就不会阻塞 UI 线程。我认为最好的方法是使 BuildCommand 方法和调用它的其他方法异步。这将是一个巨大的改变,对于使用 BuildCommand 的其他类来说并不是真正需要的。我不想使用 .Result 导致阻塞,因此在这种情况下最好使用ConfigureAwait(false):

 public Command BuildCommand()
        {
            var Command = BuildCommunicationCommand().ConfigureAwait(false);

            return Command.GetAwaiter().GetResult();
        }
Run Code Online (Sandbox Code Playgroud)

我可以使用ConfigureAwait(false) 等待进程完成,然后调用.GetAwaiter().GetResult() 将其作为对象Command 返回吗?

这是我第一次使用异步任务,所以如果以上任何内容完全是垃圾,我很抱歉!

c# asynchronous task configureawait

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

标签 统计

c# ×2

android ×1

api ×1

asynchronous ×1

configureawait ×1

ffmpeg ×1

javascript ×1

overlay ×1

scorm ×1

task ×1

video ×1

webview ×1