You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

更新SharpDX.MediaFoundation后调用CreateSinkWriterFromURL报类型转换错误如何解决

SharpDX.MediaFoundation更新后CS1503编译错误解决

错误信息

更新SharpDX.MediaFoundation项目引用后,代码编译时抛出如下错误:

CS1503 参数 2: 无法从“System.IntPtr”转换为“SharpDX.MediaFoundation.IByteStream”

出错代码段

using (var ma = new MediaAttributes())
{
    // 注意这并不代表一定会启用硬件转换,受HDCP相关配置影响,Intel Media SDK有时无法正常工作
    ma.Set(SinkWriterAttributeKeys.ReadwriteEnableHardwareTransforms, Options.EnableHardwareTransforms ? 1 : 0);
    ma.Set(SinkWriterAttributeKeys.D3DManager, _devManager.Value);
    // 默认情况下,接收器写入器的WriteSample方法会通过阻塞调用线程限制数据速率,避免应用传递采样过快,如需禁用该行为请将属性值设为1
    ma.Set(SinkWriterAttributeKeys.DisableThrottling, Options.DisableThrottling ? 1 : 0);
    ma.Set(SinkWriterAttributeKeys.LowLatency, Options.LowLatency);
    Trace("CreateSinkWriterFromURL path:" + RecordFilePath);
    writer = MediaFactory.CreateSinkWriterFromURL(RecordFilePath, IntPtr.Zero, ma);
}

问题定位

报错触发点为MediaFactory.CreateSinkWriterFromURL方法调用行,由第二个传入参数IntPtr.Zero引发类型不匹配问题:新版本SharpDX.MediaFoundation中该方法的第二个参数为可选的IByteStream接口类型,不再接受IntPtr类型的空值输入。

修复方案

将方法调用中第二个参数IntPtr.Zero替换为null即可,修改后的对应代码行如下:

writer = MediaFactory.CreateSinkWriterFromURL(RecordFilePath, null, ma);

内容的提问来源于stack exchange,提问作者Selim Boz

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 10:15:03