Перечисление устройств захвата видео с помощью DirectShow хорошо работает в консоли, но не работает с Unity (2018.2.12) - PullRequest
0 голосов
/ 12 ноября 2018

Я использую Unity 2018.2.12 и DirectShow.Net

Я создал простой код, который перечисляет устройства захвата видео.Он находит устройства, но не может получить их свойство FriendlyName при работе в качестве сценария Unity.

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?

...