Показ видео и картинок на форме - Visual Basic .NET
Формулировка задачи:
Здравствуйте!
Обращаюсь от безысходности, т.к. не знаю уже что делать и как подойти к решению проблемы. Суть в следующем:
У меня есть Form1 на которой размещен Picturebox и Timer1, выглядит код не лучшим образом... но вот так получилось:
В папке "C:\Pictures_and_video" лежат файлы 2ух типов - jpg и wmv. И вот в чем затык, не могу сделать нормальное условие, при котором:
1. Если в переменной "файлы" находится путь к "Видео файлу" - проиграть видео, дождаться окончания воспроизведения - показать сл. файл (что попадется видео или картинка).
2. Если попалась картинка - показать её (timer стоит на 5000) - соответственно через 5 сек должен идти сл. файл (опять же что попадется видео или картинка).
Что я делаю не так? Как заставить ожидать окончания видео и показать сл. файл?
Условие работает правильно, если видит видео - выключает таймер - играет полностью видео, когда видео выключается - включается таймер и показывается сл. файл.
НО.... почему-то если я попадаю на картинку после видео (ДО видео все норм), то картинка не показывается...
Может нужно как-то перед показом картинок обновить Picturebox после
Не выходит((
Надеюсь мои изыскания кому-нибудь помогут! Тему можно закрывать
P.S. Надо по чаще писать на форум, решения так и сыплются ^_^
Листинг программы
- Imports Microsoft.DirectX.AudioVideoPlayback
- Imports System.IO
- Public Class Form1
- Dim файлы() As String
- Dim WithEvents video As Video
- Dim g As Integer = 0
- Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
- файлы = IO.Directory.GetFiles("C:\Pictures_and_video")
- End Sub
- Private Sub Timer1_Tick(sender As Object, e As EventArgs) Handles Timer1.Tick, video.Ending
- For i As Int32 = 0 To файлы.Length
- If g <> файлы.Length Then
- If FileIO.FileSystem.GetFileInfo(файлы(g).ToString).Extension = ".wmv" Then
- video = New Video(файлы(i).ToString)
- video.Owner = PictureBox1
- video.Play()
- ElseIf FileIO.FileSystem.GetFileInfo(файлы(g).ToString).Extension = ".jpg" Then
- PictureBox1.Image = Image.FromFile(файлы(g))
- PictureBox1.SizeMode = PictureBoxSizeMode.StretchImage
- End If
- Else
- g = 0
- End If
- Next
- g += 1
- End Sub
- End Class
Конечно же по закону подлости, стоило мне написать на форуме, как у меня все получилось... Сделал так:
Листинг программы
- Imports Microsoft.DirectX.AudioVideoPlayback
- Imports System.IO
- Public Class Form1
- Dim файлы() As String
- Dim WithEvents video As Microsoft.DirectX.AudioVideoPlayback.Video
- Dim g As Integer = 0
- Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
- файлы = IO.Directory.GetFiles("C:\Pictures_and_video")
- End Sub
- Private Sub Timer1_Tick(sender As Object, e As EventArgs) Handles Timer1.Tick
- If g <> файлы.Length Then
- If FileIO.FileSystem.GetFileInfo(файлы(g).ToString).Extension = ".wmv" Then
- video = New Video(файлы(g).ToString)
- video.Owner = PictureBox1
- video.Play()
- Timer1.Enabled = False 'Выключаем таймер для ожидания окончания видео
- ElseIf FileIO.FileSystem.GetFileInfo(файлы(g).ToString).Extension = ".jpg" Then
- PictureBox1.Image = Image.FromFile(файлы(g).ToString)
- PictureBox1.SizeMode = PictureBoxSizeMode.StretchImage
- End If
- Else
- g = 0
- End If
- g += 1
- End Sub
- Public Sub video_Ending(sender As Object, e As EventArgs) Handles video.Ending
- Timer1.Enabled = True 'Включаем таймер после завершения показа видео
- End Sub
- End Class
video.owner = Picturebox1
?
Тааак... и с этим справился... добавил 2ой Picturebox и в нем показываю картинки, естественно когда показываю картинки - Picturebox1.visible = false, а 2ой visible = true....
Последний вопрос ^_^
Как убрать звук у видео?
Листинг программы
- video.Audio.Volume = 0
И это нашел... оказывается нужно посильнее снижать звук:
Листинг программы
- video.Audio.Volume = -10000
Нет... все равно что-то не так... периодически после проигрывания видео не показываются картинки, а периодически все нормально.... мистика какая-то...
Помогите
Решение задачи: «Показ видео и картинок на форме»
textual
Листинг программы
- Me.SendToBack()
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д