使用 DirectShow 枚举视频捕获设备在控制台中运行良好,但不适用于 Unity (2018.2.12)

问题描述 投票:0回答:1

我使用Unity 2018.2.12和DirectShow.Net

我创建了枚举视频捕获设备的简单代码。它找到了设备,但在作为 Unity 脚本运行时无法获取其FriendlyName 属性。

using DirectShowLib;
using UnityEngine;

namespace DirectShow.Net_Tests {
    public class CodeForUnity : MonoBehaviour {

        void Start() {
            foreach (var device in DsDevice.GetDevicesOfCat(FilterCategory.VideoInputDevice))
            {
                Debug.Log(
                    $"Device Name:\t{device.Name}\n" +
                    $"\tDevice FriendlyName (Property):\t{device.GetPropBagValue("FriendlyName")}\n" +
                    $"\tDevice Class GUID:\t{device.ClassID}\n");
            }
        }
    }
}

相同的代码可以获得作为控制台应用程序运行的FriendlyName属性。

using System;
using DirectShowLib;

namespace DirectShow.Net_Tests {
    static class Program {

        public static void Main(string[] args) {
            foreach (var device in DsDevice.GetDevicesOfCat(FilterCategory.VideoInputDevice))
            {
                Console.WriteLine(
                    $"Device Name:\t{device.Name}\n" +
                    $"\tDevice FriendlyName (Property):\t{device.GetPropBagValue("FriendlyName")}\n" +
                    $"\tDevice Class GUID:\t{device.ClassID}\n");
            }
        }
    }
}

为什么它在Unity中不起作用?

unity-game-engine video-capture directshow directshow.net
1个回答
0
投票

我也在 Unity3d 中使用 directshow,并且遇到了同样的问题。

© www.soinside.com 2019 - 2024. All rights reserved.