【问题标题】:"There are no more endpoints available from the endpoint mapper." when creating or activating an IMFMediaSource“端点映射器没有更多可用的端点。”创建或激活 IMFMediaSource 时
【发布时间】:2021-10-08 19:35:47
【问题描述】:

使用Microsoft tutorial on Audio/Video Capture in Media Foundation,我尝试为摄像机创建媒体源。以下代码直接取自上述教程:

HRESULT CreateVideoCaptureDevice(IMFMediaSource **ppSource)
{
    *ppSource = NULL;

    UINT32 count = 0;

    IMFAttributes *pConfig = NULL;
    IMFActivate **ppDevices = NULL;

    // Create an attribute store to hold the search criteria.
    HRESULT hr = MFCreateAttributes(&pConfig, 1);

    // Request video capture devices.
    if (SUCCEEDED(hr))
    {
        hr = pConfig->SetGUID(
            MF_DEVSOURCE_ATTRIBUTE_SOURCE_TYPE, 
            MF_DEVSOURCE_ATTRIBUTE_SOURCE_TYPE_VIDCAP_GUID
            );
    }

    // Enumerate the devices,
    if (SUCCEEDED(hr))
    {
        hr = MFEnumDeviceSources(pConfig, &ppDevices, &count);
    }

    // Create a media source for the first device in the list.
    if (SUCCEEDED(hr))
    {
        if (count > 0)
        {
            hr = ppDevices[0]->ActivateObject(IID_PPV_ARGS(ppSource));
        }
        else
        {
            hr = MF_E_NOT_FOUND;
        }
    }

    for (DWORD i = 0; i < count; i++)
    {
        ppDevices[i]->Release();
    }
    CoTaskMemFree(ppDevices);
    return hr;
}

在特定机器(Windows 10)上,执行ActivateObject方法后,传给hr的结果为如下错误码:

HResult 0x800706d9:“端点映射器没有更多可用的端点。”

使用教程中描述的替代方法创建源并使用 MFCreateDeviceSource 方法,得到相同的结果。

这台机器上的任何摄像机设备都给出相同的结果,但另一台机器上的相同代码可以正常工作。

此错误代码在网络上被多次引用,但似乎总是与连接到打印机、加入域或其他网络内容有关。更改防火墙设置的建议解决方案没有解决我的问题。

【问题讨论】:

    标签: c++ windows ms-media-foundation


    【解决方案1】:

    在我的例子中,罪魁祸首是一个被禁用的服务:Windows Camera Frame Server。

    我必须通过服务应用程序启用它(自动启动)并启动它:

    此后错误不再发生。

    在相关说明中,我还必须允许应用程序访问相机:

    本地组策略:计算机配置/管理模板/Windows 组件/应用隐私

    “让 Windows 应用访问相机”必须设置为“未配置”。

    【讨论】:

      猜你喜欢
      • 2010-09-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多