在 Uno 平台上合并音频和视频

Posted

技术标签:

【中文标题】在 Uno 平台上合并音频和视频【英文标题】:Merge Audio and Video on Uno Platform 【发布时间】:2021-03-26 17:58:32 【问题描述】:

我正在尝试在 Uno 平台上将音频流和视频流合并到一个文件中,特别是对于 WebAssembly。 我已经知道正常的、仅限桌面的方法是调用ffmpeg,而且我还找到了一个仅适用于 UWP 的 C# 方法here。 但是,代码使用了Windows.Media.Editing,即not implemented in Uno。 我知道 WASM here 有一个 ffmpeg 库端口,但我不知道如何从我的 Uno Web 应用程序调用它。

那么有什么方法可以在 WASM 的 Uno 平台上将音频流和视频流合并到一个文件中?

【问题讨论】:

【参考方案1】:

很遗憾,这个 API 还没有在 Uno Platform 中实现,所以在这种情况下,您需要编写特定于平台的实现。

如果您有可用的 javascript 库,它可以提供您需要的功能,您仍然可以从 C# 代码中调用它。在 Uno 平台文档中有 a three-part tutorial 实现 C# - JS 互操作,因此可能有助于入门。

或者,如果您在 NuGet 上找到 C# 中的替代实现,您可以为支持的平台安装它并在您的代码中使用它。要编写特定于平台的代码,您可以使用#if 条件,如#if __WASM__ 等 - 有关完整信息,请参阅this documentation page。

【讨论】:

除了strings 之外,文档并没有太多关于在 C# 和 js 之间编组对象的内容。 没错,编组没有记录,因为它正在进行中。对于 ffmpeg,需要重新构建库以公开其 C API,而不是 Javascript API,因此可以使用 PInvoke 并避免显式编组。

以上是关于在 Uno 平台上合并音频和视频的主要内容,如果未能解决你的问题,请参考以下文章

在 iPhone 上合并音频文件

如何在Windows Phone 8中合并音频和视频[关闭]

在 iPhone 5s 上合并音频到视频的问题

C# windows phone - 合并音频和视频文件

如何在 ionic 平台的 APIRTC 上静音和取消静音视频/音频?

如何在合并音频和视频时循环播放音频