Member 9626615 Ответов: 5

подключение веб-камеры с помощью aforge.net в vb.net


Всем привет,

Я новичок на этом форуме и начинающий программист.

Я хочу разработать программу детектора движения в визуальном Basic.NET. Я попробовал Windows API для подключения веб-камеры к моему проекту.
Во время серфинга в сети я наткнулся на этот форум и нашел проект, который использует AForge.net. Я скачал и установил фреймворк и попробовал определенный проект, чтобы узнать, что есть что.
Я решил переписать код сам, но столкнулся с ошибкой в строке
If VideoSourcePlayer1.Isrunning = True Then

В нем говорится, что VideoSourcePlayer1 не объявленный. Он может быть недоступен из-за своего уровня защиты.

Вот код, который я пытаюсь переписать. То VideoSourcePlayer1 нет никакой ошибки.
Я просто переписываю код, так почему же я сталкиваюсь с ошибкой, когда кажется, что она отлично работает в другом проекте?

Пожалуйста, помогите мне.

Заранее спасибо.

Imports AForge.Video
Imports AForge.Video.DirectShow

Public Class MainWindow
    Dim VideoCaptureSource As VideoCaptureDevice
    Dim WCdevices As New FilterInfoCollection(FilterCategory.VideoInputDevice)


    Private Sub MainWindow_Load(sender As Object, e As EventArgs) Handles MyBase.Load

        Dim MyWebcam As FilterInfo

        If WCdevices.Count = 0 Then
            lstWCdevices.Items.Add("No Webcam Device Detected")
        Else
            For Each MyWebcam In WCdevices
                lstWCdevices.Items.Add(MyWebcam.Name)
            Next
        End If
        lstWCdevices.SelectedIndex = 0
    End Sub



    Private Sub btnStart_Click(sender As Object, e As EventArgs) Handles btnStart.Click
        If lstWCdevices.SelectedItem <> "No Video Devices" Then


            If VideoSourcePlayer1.IsRunning = True Then
                VideoSourcePlayer1.SignalToStop()
                VideoSourcePlayer1.WaitForStop()
            End If

            VideoCaptureSource = New VideoCaptureDevice(VideoDevices(cboVideoSource.SelectedIndex).MonikerString)
            VideoSourcePlayer1.VideoSource = VideoCaptureSource
            VideoSourcePlayer1.Start()
        End If
    End Sub
End Class

5 Ответов

Рейтинг:
2

pdoxtader

Привет,

Ошибка, которую вы описываете-ошибки уровня защиты связаны с областью действия. Этот объект: VideoSourcePlayer1 недоступно из класса, из которого вы пытаетесь его вызвать. В тех фрагментах кода, которые вы предоставили, я тоже нигде не вижу, чтобы он был объявлен.

Я бы поискал его объявление и убедился, что оно объявлено таким образом, чтобы оно было доступно классу, из которого вы его вызываете, или передал бы его классу, из которого вам нужно его вызвать.

Надеюсь, это поможет...

- Пит


Member 9626615

Привет, Пит, код, опубликованный выше, не мой, и некоторое время назад я увидел у дизайнера проекта, в InitializeComponent (), что VideoSourcePlayer1 есть и понял, что это объект. извините, я забыл упомянуть, что в проекте, который я скачал, я не вижу никакого дизайна или объекта в форме. я попытался подражать строчкам

'
'VideoSourcePlayer1
'
Меня.VideoSourcePlayer1.Местоположение = Новая Система.Рисование.Точка (15, 59)
Me.VideoSourcePlayer1.Name = " VideoSourcePlayer1"
Меня.VideoSourcePlayer1.Размер = Новая Система.Рисование.Размер (320, 240)
Меня.VideoSourcePlayer1.TabIndex = 2
Меня.VideoSourcePlayer1.Text = " VideoSourcePlayer1"
Me.VideoSourcePlayer1. VideoSource = Ничего

и

Друг WithEvents VideoSourcePlayer1 Как AForge.Управления.VideoSourcePlayer

ниже. ошибка исчезла, моя веб-камера теперь открывается, но не видит никаких выходных данных. Итак, что же мне нужно сделать, чтобы получить этот объект: VideoSourcePlayer1, нужно ли мне что-то импортировать или что? спасибо :)

Рейтинг:
2

chizengwe

вам нужно добавить aforge.чистые ссылки на ваш проект. затем вы переходите к панели инструментов и добавляете компонент videosource. важно убедиться, что вы вставляете dll-файлы aforge в свои файлы проекта и ссылаетесь на них оттуда: chizz всегда рядом с вами


Рейтинг:
1

pdoxtader

Это ключевая линия здесь, я думаю:

Friend WithEvents VideoSourcePlayer1 As AForge.Controls.VideoSourcePlayer


Это не просто объект, это сторонний элемент управления - и он находится в AForge класс. В нем есть события - и я думаю, что вы, вероятно, не справляетесь с ними. Я думаю, что вам нужно покопаться в примере проекта и найти, где обрабатываются события, и повторить это в своем собственном проекте. Когда вы это сделаете, я думаю, вы получите видео.

Я думаю, ты почти там... И да-просто судя по тому, что вы только что опубликовали, я не удивлен, что вы ничего не видите в дизайнере. Видеть это:

Me.videoSourcePlayer1.Location =...


Они устанавливают управление вручную. Вероятно, в конструкторе вы ничего не увидите.

- Пит


Member 9626615

спасибо Пит но я думаю мне придется искать другую ссылку хотя мне трудно найти проект который использует aforge in vb.net.
Я тщательно обыскал проект, как вы мне сказали, но не вижу никаких событий или заявлений относительно VideoSourcePlayer1, кроме кодов, которые я опубликовал выше. Я ценю ваши усилия, помогающие мне справиться с этой проблемой. Спасибо.

pdoxtader

Вы уже заглядывали на сайт AForge? Я только бегло взглянул, но из того, что я увидел, есть множество документации и примеров проектов для большинства (если не всех) функций, предлагаемых библиотекой. Я думаю, вы найдете там то, что вам нужно.

http://www.aforgenet.com/aforge/framework/

pdoxtader

Например,на этой странице вы найдете 6 примеров проектов, которые вы можете скачать.

http://www.aforgenet.com/framework/samples/image_processing.html

Member 9626615

Добрый день pdoxtader, спасибо за совет, я понял, что aforgenet.com работает отлично, я пытался открыть этот сайт вчера, и как бы я ни старался, он не откроется, поэтому мне трудно получить ссылки, я сначала исправлю эту проблему при подключении к сайту. Я вернусь сюда, как только снова начну заниматься своим проектом. Спасибо.

Рейтинг:
1

JRayH

Если вы используете NuGet для загрузки AForge, обратите внимание, что AForge.Пакет управления должен быть загружен отдельно. Затем создайте новую вкладку в Toolbox, назовите ее AForge, щелкните правой кнопкой мыши на пустой вкладке и выберите пункт выбрать элементы, затем перейдите в папку решения, затем вниз к пакетам, а затем в AForge.Управления.2.2.5, в lib, затем выберите Aforge.Controls.dll.

Теперь вы должны иметь возможность перетаскивать видеоплеер из панели инструментов на свою форму в режиме конструктора.


Рейтинг:
0

Member 9626615

Ребята, я наконец-то нашел этот видеоресурс player1. Итак, это объект, который вы должны сначала добавить в Панель инструментов. что я сделал, так это щелкнул правой кнопкой мыши на панели инструментов "выбрать элементы" и добавил aforge. controls.dll, затем появились компоненты, включая VideoSourcePlayer, и все:) спасибо за помощь.