Rust 如何设置非标准gstreamer属性的类型?

Rust 如何设置非标准gstreamer属性的类型?,rust,gstreamer,gstreamer-1.0,Rust,Gstreamer,Gstreamer 1.0,我正在尝试设置videotestsrc的pattern属性。按照正常逻辑,我尝试将变量设置为i32和字符串。两者都会失败,并出现一个要求特定类型的错误 查看gstreamerapi,我找不到设置属性的方法 如何强制变量的类型与预期的匹配 let pattern = "snow"; src.set_property("pattern", &pattern) .expect("setting pattern error"); 错误消息 线程'main'在'setting patte

我正在尝试设置videotestsrc的pattern属性。按照正常逻辑,我尝试将变量设置为i32和字符串。两者都会失败,并出现一个要求特定类型的错误

查看gstreamerapi,我找不到设置属性的方法

如何强制变量的类型与预期的匹配

let pattern = "snow";
src.set_property("pattern", &pattern)
    .expect("setting pattern error");
错误消息

线程'main'在'setting pattern error:BoolError{message:property'pattern\'类型为'GstVideoTestSrc\'时惊慌失措,无法从给定类型设置,应为:\'GstVideoTestSrcPattern\',获取:\'gchararray\',
您可以通过字符串via进行设置


或者,您可以使用API获取该类型的所有可能值。您可以通过获取该类型,然后在其上获取该类型。

您可以通过字符串设置该类型


或者,您可以使用API获取该类型的所有可能值。您可以通过并在其上获取该类型。

thx Sebastian。您能否告诉我,是否有一些逻辑将错误BoolError映射为知道它是从set_property_from_string设置的。而不是从int等效值1设置的?错误告诉您e属性是一个GstVideoTestSrcPattern,而不是一个gchararray,即一个字符串,但您提供了后者。如果需要,在使用_str中的set_属性_时,您也可以提供它的整数值。在内部,它使用我上面提到的EnumClass API将字符串或整数值转换为实际的枚举值。thx Sebastian。您可以吗告诉我是否有一些逻辑将错误BoolError映射为知道它是从set_property_from_string设置的。而不是从int等价物1设置的?错误告诉您期望的属性类型是GstVideoTestSrcPattern,而不是gchararray,即字符串,但您提供了后者。使用set_property_from_str时,您还可以如果需要,可以提供它的整数值。在内部,它使用我上面提到的EnumClass API将字符串或整数值转换为实际的枚举值。