如何在 C++ UWP 项目中使用 TimeSpan-Elements 初始化和填充 IVector?

科罗诺

我正在尝试在 C++/CX UWP 项目中以定义的时间间隔从现有视频中截取屏幕截图。我的想法是使用MediaComposition 库中的函数“GetThumbnailsAsync”

    create_task(MediaClip::CreateFromFileAsync(this->last_video)).then([this](MediaClip^ clip )
{
    // Create a MediaComposition containing the clip and set it on the MediaElement.
    MediaComposition^ composition = ref new MediaComposition();
    composition->Clips->Append(clip);

    TimeSpan ts;
    ts.Duration = 1000;

    IVector<TimeSpan>^ i_ts_vector;
    //TODO

    create_task(composition->GetThumbnailsAsync(is_ts_vector, 0, 0, VideoFramePrecision::NearestFrame)).then([this, clip, composition](IVectorView<ImageStream^>^ imageStream)
    {
        //TODO
    });
});

last_video 是带有视频路径的 StorageFile。

这不起作用,因为 i_ts_vector 未初始化且仍为 NULL。我已经尝试过这样的事情:

IVector<TimeSpan>^ i_ts_vector = ref new Vector<TimeSpan>();

这适用于 int 向量,但不适用于 TimeSpan 向量。它给出了一个编译器错误:

错误 C2678 二进制“==”:未找到采用“const Windows::Foundation::TimeSpan”类型的左侧操作数的运算符(或没有可接受的转换)

如何使用 TimeSpan-Elements 初始化和填充 IVector?或者有更好的截屏方式吗?

科罗诺

左杰

这里的问题是(引用Vector 中的值类型

要存储在Platform::Collections::Vector中的任何元素都必须支持相等比较,无论是隐式还是使用您提供的自定义std::equal_to比较器。所有引用类型和所有标量类型都隐式支持相等比较。对于Windows::Foundation::DateTime等非标量值类型,或自定义比较——例如,objA->UniqueID == objB->UniqueID—you必须提供自定义函数对象。

TimeSpan Struct也是没有相等运算 ( operator==)的非标量值类型之一所以你得到了Error C2678为了解决这个问题,你可以提供一个像下面这样的自定义函子:

struct MyEqual : public std::binary_function<const TimeSpan, const TimeSpan, bool>
{
    bool operator()(const TimeSpan& _Left, const TimeSpan& _Right) const
    {
        return _Left.Duration == _Right.Duration;
    }
};

然后在Platform::Collections::Vector 中使用它,例如:

IVector<TimeSpan>^ i_ts_vector = ref new Platform::Collections::Vector<TimeSpan, MyEqual>();

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在UWP项目中使用预先设计的SQLite?

来自分类Dev

如何使用结构指针和指定的初始化来初始化C结构

来自分类Dev

如何在C#项目中使用LIB文件?

来自分类Dev

如何在cmake项目中使用c ++ 20

来自分类Dev

如何在C ++项目中使用Swift静态库(.a)?

来自分类Dev

如何在C#项目中使用LIB文件?

来自分类Dev

如何在C ++项目中使用共享动态库?

来自分类Dev

什么是.exp文件和.lib文件,如何在我的C#项目中使用它们?

来自分类Dev

如何在UWP的类库项目中使用Resources.resw?

来自分类Dev

如何在 UWP 项目中通过 I2C 连接到 Arduino 的 Raspberry Pi IoT 打开和关闭 LED?

来自分类Dev

如何在Django项目中使用初始数据填充auth.groups和auth.group_permissions表

来自分类Dev

C++如何初始化和填充类的二维向量

来自分类Dev

如何初始化和测试在C中使用结构的队列?

来自分类Dev

如何在Windows中使用MinGW的CLion中的C项目中使用pthread头文件

来自分类Dev

如何从Visual Studio C ++项目中使用RTMPDump?

来自分类Dev

如何从Visual Studio C ++项目中使用RTMPDump?

来自分类Dev

如何在C ++中使用相同的值初始化2D数组

来自分类Dev

如何在C ++中使用构造函数初始化2D向量?

来自分类Dev

如何在C ++中使用字符串文字初始化char的动态数组?

来自分类Dev

如何在C ++中使用大小初始化3维向量

来自分类Dev

如何在C ++中使用构造函数初始化2D向量?

来自分类Dev

如何在下一个JS项目中使用Firebase Cloud FireStore数据库。如何正确初始化?

来自分类Dev

如何在 Eiffel 中初始化和填充链表?

来自分类Dev

如何在C#项目中使用F#定义的类型

来自分类Dev

如何在Swift项目中使用Obj-c库/自定义界面

来自分类Dev

如何在blazor项目中使用C#绑定使HTML文本多行?

来自分类Dev

如何在AOSP项目中使用预建的c ++静态/共享库

来自分类Dev

如何在Blazor WebAssembly项目中使用C#9?

来自分类Dev

我如何在C#项目中使用LightStreamer DotNetStandard库

Related 相关文章

  1. 1

    如何在UWP项目中使用预先设计的SQLite?

  2. 2

    如何使用结构指针和指定的初始化来初始化C结构

  3. 3

    如何在C#项目中使用LIB文件?

  4. 4

    如何在cmake项目中使用c ++ 20

  5. 5

    如何在C ++项目中使用Swift静态库(.a)?

  6. 6

    如何在C#项目中使用LIB文件?

  7. 7

    如何在C ++项目中使用共享动态库?

  8. 8

    什么是.exp文件和.lib文件,如何在我的C#项目中使用它们?

  9. 9

    如何在UWP的类库项目中使用Resources.resw?

  10. 10

    如何在 UWP 项目中通过 I2C 连接到 Arduino 的 Raspberry Pi IoT 打开和关闭 LED?

  11. 11

    如何在Django项目中使用初始数据填充auth.groups和auth.group_permissions表

  12. 12

    C++如何初始化和填充类的二维向量

  13. 13

    如何初始化和测试在C中使用结构的队列?

  14. 14

    如何在Windows中使用MinGW的CLion中的C项目中使用pthread头文件

  15. 15

    如何从Visual Studio C ++项目中使用RTMPDump?

  16. 16

    如何从Visual Studio C ++项目中使用RTMPDump?

  17. 17

    如何在C ++中使用相同的值初始化2D数组

  18. 18

    如何在C ++中使用构造函数初始化2D向量?

  19. 19

    如何在C ++中使用字符串文字初始化char的动态数组?

  20. 20

    如何在C ++中使用大小初始化3维向量

  21. 21

    如何在C ++中使用构造函数初始化2D向量?

  22. 22

    如何在下一个JS项目中使用Firebase Cloud FireStore数据库。如何正确初始化?

  23. 23

    如何在 Eiffel 中初始化和填充链表?

  24. 24

    如何在C#项目中使用F#定义的类型

  25. 25

    如何在Swift项目中使用Obj-c库/自定义界面

  26. 26

    如何在blazor项目中使用C#绑定使HTML文本多行?

  27. 27

    如何在AOSP项目中使用预建的c ++静态/共享库

  28. 28

    如何在Blazor WebAssembly项目中使用C#9?

  29. 29

    我如何在C#项目中使用LightStreamer DotNetStandard库

热门标签

归档