Форум программистов, компьютерный форум, киберфорум
Visual Basic .NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.98/41: Рейтинг темы: голосов - 41, средняя оценка - 4.98
 Аватар для Dim1One
44 / 44 / 4
Регистрация: 30.04.2011
Сообщений: 283

Как воспроизвести видео в PictureBox

24.06.2011, 21:52. Показов 8536. Ответов 14
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Как воспроизвести програмно видео средствами VB. NET?
Погуглил, нашел это:
VB.NET Скопировано
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
    Private Declare Function mciSendString Lib "winmm.dll" Alias "mciSendStringA" (ByVal lpstrCommand As String, ByVal lpstrReturnString As String, ByVal uReturnLength As Integer, ByVal hwndCallback As Integer) As Integer
    Const WS_CHILD As Integer = &H40000000
 
    Private Sub PlayMedia(ByRef FileName As String, ByVal Window As Control)
        FileName = Chr(34) & FileName & Chr(34)
        mciSendString("Open " & FileName & " alias MediaFile parent " & CStr(Window.Handle.ToInt32) & " style " & CStr(WS_CHILD), Nothing, 0, 0)
        mciSendString("put MediaFile window at 0 0 " & CStr(PixelToTwip(Window.ClientRectangle.Width) / 15) & " " & CStr(PixelToTwip(Window.ClientRectangle.Height) / 15), Nothing, 0, 0)
        mciSendString("Play MediaFile", Nothing, 0, 0)
    End Sub
 
    Private Function PixelToTwip(ByVal Pixel As Integer) As Double
        Return Pixel * 15
    End Function
 
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
 
        PlayMedia("C:\stalker(Treiler).avi", PictureBox1)
    End Sub
Но при нажатии на кнопку просто ни чего не происходит.
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
24.06.2011, 21:52
Ответы с готовыми решениями:

Как воспроизвести видео?
Добрый день, изучив форум и попробовал некоторые варианты не получил желаемого результата. Вопрос: Как воспроизвести видео на Form в...

Как воспроизвести видео на форме и сделать с него скриншот
Конкретно сейчас меня интересует только лишь возможность проигрывания видео прямо внутри формы (то есть даже без fullscreen) и возможность...

Как воспроизвести видео на форме
Нужно что бы по нажатию кнопки просто запускалось видео без всяких красивостей.

14
 Аватар для Ciberst
559 / 436 / 21
Регистрация: 16.12.2010
Сообщений: 953
25.06.2011, 09:34
Зачем так изощряться? DirectX вам в помощь
http://msdn.microsoft.com/en-u... 02629.aspx
0
 Аватар для Dim1One
44 / 44 / 4
Регистрация: 30.04.2011
Сообщений: 283
25.06.2011, 10:06  [ТС]
Можно примерчик?
Я пробовал так, но пишет ошибку:
VB.NET Скопировано
1
2
3
4
5
6
7
8
9
10
Imports Microsoft.DirectX.AudioVideoPlayback
Public Class Form1
    Dim Video As Microsoft.DirectX.AudioVideoPlayback.Video
 
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Video = New Video("C:\Documents and Settings\диман\Мои документы\All for S.T.A.L.K.E.R.(SHOC)(STCS)(COP)\Videos\stalker(Treiler).avi")
        Video.FromFile("C:\Documents and Settings\диман\Мои документы\All for S.T.A.L.K.E.R.(SHOC)(STCS)(COP)\Videos\stalker(Treiler).avi")
        Video.Play()
    End Sub
End Class
0
 Аватар для Петррр
6721 / 3570 / 900
Регистрация: 28.10.2010
Сообщений: 5,937
25.06.2011, 10:15
А можно узнать, что говорит ошибка?

Добавлено через 3 минуты
Owner нужно установить. Это компонент на котором будет проигрываться видео.
0
_
2364 / 1243 / 78
Регистрация: 28.10.2009
Сообщений: 4,331
25.06.2011, 10:17
Dim1One,
Можно оставить первую строку, вторая строка по сути повторяет первую
VB.NET Скопировано
1
2
Video = New Video("C:\Documents and Settings\диман\Мои документы\All for S.T.A.L.K.E.R.(SHOC)(STCS)(COP)\Videos\stalker(Treiler).avi")
        Video.FromFile("C:\Documents and Settings\диман\Мои документы\All for S.T.A.L.K.E.R.(SHOC)(STCS)(COP)\Videos\stalker(Treiler).avi")
Чтобы увидеть видео, нужно некоторый контрол, ассоциированный с этим видео, где видео будет восроизводиться.
То есть надо, например, добавить какой-нибудь контрол - допустим, PictireBox c именем PictireBox1, тогда код для воспроизведения видео будет выглядеть так
VB.NET Скопировано
1
2
3
Video1 = New Video("C:\Documents and Settings\диман\Мои документы\All for S.T.A.L.K.E.R.(SHOC)(STCS)(COP)\Videos\stalker(Treiler).avi")
        Video1.Owner = PictureBox1
        Video1.Play()
0
 Аватар для Dim1One
44 / 44 / 4
Регистрация: 30.04.2011
Сообщений: 283
25.06.2011, 11:23  [ТС]
VB.NET Скопировано
1
2
3
4
5
6
7
8
9
10
Imports Microsoft.DirectX.AudioVideoPlayback
Public Class Form1
    Dim Video As Microsoft.DirectX.AudioVideoPlayback.Video
 
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Video = New Video("C:\Documents and Settings\диман\Мои документы\All for S.T.A.L.K.E.R.(SHOC)(STCS)(COP)\Videos\stalker(Treiler).avi")
        Video.Owner = PictureBox1
        Video.Play()
    End Sub
End Class
Ошибка во втором вложении. Подчеркивает строку:
VB.NET Скопировано
1
Video = New Video("C:\Documents and Settings\диман\Мои документы\All for S.T.A.L.K.E.R.(SHOC)(STCS)(COP)\Videos\stalker(Treiler).avi")
Если не убирать галочку c Debug->Exceptions->LoaderLock, то ошибка будет другая(см. первое вложение)
Миниатюры
Как воспроизвести видео в PictureBox   Как воспроизвести видео в PictureBox  
0
_
2364 / 1243 / 78
Регистрация: 28.10.2009
Сообщений: 4,331
25.06.2011, 11:30
Добавь файл конфигурации
XML Скопировано
1
2
3
4
5
<configuration>
  <startup useLegacyV2RuntimeActivationPolicy="true">
    <supportedRuntime version="v4.0"/>
  </startup>
</configuration>
0
 Аватар для Dim1One
44 / 44 / 4
Регистрация: 30.04.2011
Сообщений: 283
25.06.2011, 12:02  [ТС]
А как добавить файл конфигурации? Я жму Project->Add New Item и там нет ни чего похожего на конфигурационный файл.
0
_
2364 / 1243 / 78
Регистрация: 28.10.2009
Сообщений: 4,331
25.06.2011, 12:05
Пункт Application Configuration File
0
 Аватар для Dim1One
44 / 44 / 4
Регистрация: 30.04.2011
Сообщений: 283
25.06.2011, 12:14  [ТС]
У меня нет такого пункта(см. вложение)
Это из-за того, что у меня Express Edition?
Миниатюры
Как воспроизвести видео в PictureBox  
0
_
2364 / 1243 / 78
Регистрация: 28.10.2009
Сообщений: 4,331
25.06.2011, 12:23
У меня тоже express только 2010. Кстати конфиг надо добавлять для NET 4.0, для предыдущих версий не надо. А у тебя явно не 2010 и под NET 4.0 ты вряд ли можешь компилировать. Значит проблема в другом.
0
 Аватар для Ciberst
559 / 436 / 21
Регистрация: 16.12.2010
Сообщений: 953
25.06.2011, 14:32
Лучший ответ Сообщение было отмечено как решение

Решение

Ну вот, что-то набросал, пробуй!
VB.NET Скопировано
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
Public Class Form1
    Dim plr As Microsoft.DirectX.AudioVideoPlayback.Video
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim FD As New Windows.Forms.OpenFileDialog
        FD.Filter = "МУВИКИ|*.avi"
        FD.Title = "www.CyberForum.ru"
        FD.ShowDialog()
        Try
            plr.Dispose()
        Catch ex As Exception
 
        End Try
        If FD.FileName <> "" Then
            plr = New Microsoft.DirectX.AudioVideoPlayback.Video(FD.FileName)
            plr.Owner = PictureBox1
            plr.Play()
        End If
    End Sub
P.S. У меня все воспроизводит замечательно? если режиме компилятора, есkи в режиме дебагера, то вылезет ошибку, но можно нажать F5 и она пропадет
Вложения
Тип файла: rar VIDEO_PLR.rar (43.0 Кб, 287 просмотров)
5
 Аватар для Dim1One
44 / 44 / 4
Регистрация: 30.04.2011
Сообщений: 283
25.06.2011, 16:46  [ТС]
Ciberst, спасибо, заработало!
0
2 / 2 / 0
Регистрация: 15.04.2015
Сообщений: 16
20.02.2016, 22:24
у меня пишет в коде объявления переменной: Тип "Microsoft.DirectX.AudioVideoPlayback.Vi deo" не определён, хотя DirectX установлен
0
 Аватар для Winney
307 / 248 / 40
Регистрация: 28.09.2013
Сообщений: 600
21.02.2016, 18:29
Цитата Сообщение от Vb-vbnz Посмотреть сообщение
хотя DirectX установлен
Наверняка нужен не просто директ, а SDK

Добавлено через 50 секунд
и в ссылках нужно прописывать используемые пространства имен
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
21.02.2016, 18:29
Помогаю со студенческими работами здесь

Воспроизвести видео, как заставку
Делаем с другом игру...нужно воспроизвести видео , как заставку ...в начале программы. как это можно реализовать по проще? C++ Если...

Как воспроизвести видео на форме?
Как воспроизвести видео на форме?

Как воспроизвести видео из интернета
Вообщем то вот и вопрос. Добавлено через 4 минуты Допустим есть сайт а мне надо чтобы только видео из него было видно

Как воспроизвести видео Delphi 7
Привет всем. Стоит задача воспроизвести видио формата, к примеру, mp4, использовав приложения установленные по умолчанию в ОС. Как...

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


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Новые блоги и статьи
Результаты исследования от команды MCM (март 2025 г.)
Programma_Boinc 07.04.2025
Результаты исследования от команды MCM (март 2025 г. ) В рамках наших текущих исследований мы продолжаем изучать гены, которые имеют наибольшую вероятность развития рака легких, выявленные в рамках. . .
Рекурсивные типы в Python
py-thonny 07.04.2025
Рекурсивные типы - это типы данных, которые определяются через самих себя или в сочетании с другими типами, которые в свою очередь ссылаются на исходный тип. В мире программирования такие структуры. . .
C++26: Объединение и конкатенация последовательностей и диапазонов в std::ranges
NullReferenced 07.04.2025
Работа с последовательностями данных – одна из фундаментальных задач, с которой сталкивается каждый разработчик. C++ прошел длинный путь в эволюции средств для манипуляции коллекциями – от. . .
Обмен данными в микросервисной архитектуре
ArchitectMsa 06.04.2025
Когда разработчики начинают погружаться в мир микросервисов, они часто сталкиваются с парадоксальным правилом: "два сервиса не должны делить один источник данных". Эта мантра звучит повсюду в. . .
PostgreSQL в Kubernetes: Автоматизация обслуживания с CNPG
Mr. Docker 06.04.2025
Администраторы баз данных сталкиваются с целым рядом проблем при обслуживании PostgreSQL в Kubernetes: как обеспечить правильную репликацию данных, как настроить автоматическое переключение при. . .
Async/await в TypeScript
run.dev 06.04.2025
Асинхронное программирование — это подход к разработке программного обеспечения, при котором операции выполняются независимо друг от друга. В отличие от синхронного выполнения, где каждая последующая. . .
Многопоточность в C#: Синхронизация потоков
UnmanagedCoder 06.04.2025
Многопоточное программирование стало неотъемлемой частью разработки современных приложений на C#. С появлением многоядерных процессоров возможность выполнять несколько задач параллельно значительно. . .
TypeScript: Классы и конструкторы
run.dev 06.04.2025
TypeScript, как статически типизированный язык, построенный на основе JavaScript, привнес в веб-разработку новый уровень надежности и структурированности кода. Одним из важнейших элементов этой. . .
Многопоточное программирование: Rust против C++
golander 06.04.2025
C++ существует уже несколько десятилетий и его поддержка параллелизма постепенно наращивалась со временем. Начиная с C++11, язык получил стандартную библиотеку для работы с потоками, а в последующих. . .
std::vector в C++: от основ к оптимизации производительности
NullReferenced 05.04.2025
Для многих программистов знакомство с std::vector происходит на ранних этапах изучения языка, но между базовым пониманием и подлинным мастерством лежит огромная дистанция. Контейнер std::vector. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru
Выделить код Копировать код Сохранить код Нормальный размер Увеличенный размер