Показ видео и картинок на форме - Visual Basic .NET

Узнай цену своей работы

Формулировка задачи:

Здравствуйте! Обращаюсь от безысходности, т.к. не знаю уже что делать и как подойти к решению проблемы. Суть в следующем: У меня есть Form1 на которой размещен Picturebox и Timer1, выглядит код не лучшим образом... но вот так получилось:
Листинг программы
  1. Imports Microsoft.DirectX.AudioVideoPlayback
  2. Imports System.IO
  3. Public Class Form1
  4. Dim файлы() As String
  5. Dim WithEvents video As Video
  6. Dim g As Integer = 0
  7. Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
  8. файлы = IO.Directory.GetFiles("C:\Pictures_and_video")
  9. End Sub
  10. Private Sub Timer1_Tick(sender As Object, e As EventArgs) Handles Timer1.Tick, video.Ending
  11. For i As Int32 = 0 To файлы.Length
  12. If g <> файлы.Length Then
  13. If FileIO.FileSystem.GetFileInfo(файлы(g).ToString).Extension = ".wmv" Then
  14. video = New Video(файлы(i).ToString)
  15. video.Owner = PictureBox1
  16. video.Play()
  17. ElseIf FileIO.FileSystem.GetFileInfo(файлы(g).ToString).Extension = ".jpg" Then
  18. PictureBox1.Image = Image.FromFile(файлы(g))
  19. PictureBox1.SizeMode = PictureBoxSizeMode.StretchImage
  20. End If
  21. Else
  22. g = 0
  23. End If
  24. Next
  25. g += 1
  26. End Sub
  27. End Class
В папке "C:\Pictures_and_video" лежат файлы 2ух типов - jpg и wmv. И вот в чем затык, не могу сделать нормальное условие, при котором: 1. Если в переменной "файлы" находится путь к "Видео файлу" - проиграть видео, дождаться окончания воспроизведения - показать сл. файл (что попадется видео или картинка). 2. Если попалась картинка - показать её (timer стоит на 5000) - соответственно через 5 сек должен идти сл. файл (опять же что попадется видео или картинка). Что я делаю не так? Как заставить ожидать окончания видео и показать сл. файл?
Конечно же по закону подлости, стоило мне написать на форуме, как у меня все получилось... Сделал так:
Листинг программы
  1. Imports Microsoft.DirectX.AudioVideoPlayback
  2. Imports System.IO
  3. Public Class Form1
  4. Dim файлы() As String
  5. Dim WithEvents video As Microsoft.DirectX.AudioVideoPlayback.Video
  6. Dim g As Integer = 0
  7. Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
  8. файлы = IO.Directory.GetFiles("C:\Pictures_and_video")
  9. End Sub
  10. Private Sub Timer1_Tick(sender As Object, e As EventArgs) Handles Timer1.Tick
  11. If g <> файлы.Length Then
  12. If FileIO.FileSystem.GetFileInfo(файлы(g).ToString).Extension = ".wmv" Then
  13. video = New Video(файлы(g).ToString)
  14. video.Owner = PictureBox1
  15. video.Play()
  16. Timer1.Enabled = False 'Выключаем таймер для ожидания окончания видео
  17. ElseIf FileIO.FileSystem.GetFileInfo(файлы(g).ToString).Extension = ".jpg" Then
  18. PictureBox1.Image = Image.FromFile(файлы(g).ToString)
  19. PictureBox1.SizeMode = PictureBoxSizeMode.StretchImage
  20. End If
  21. Else
  22. g = 0
  23. End If
  24. g += 1
  25. End Sub
  26. Public Sub video_Ending(sender As Object, e As EventArgs) Handles video.Ending
  27. Timer1.Enabled = True 'Включаем таймер после завершения показа видео
  28. End Sub
  29. End Class
Условие работает правильно, если видит видео - выключает таймер - играет полностью видео, когда видео выключается - включается таймер и показывается сл. файл. НО.... почему-то если я попадаю на картинку после видео (ДО видео все норм), то картинка не показывается... Может нужно как-то перед показом картинок обновить Picturebox после

video.owner = Picturebox1

?
Тааак... и с этим справился... добавил 2ой Picturebox и в нем показываю картинки, естественно когда показываю картинки - Picturebox1.visible = false, а 2ой visible = true.... Последний вопрос ^_^ Как убрать звук у видео?
Листинг программы
  1. video.Audio.Volume = 0
Не выходит((
И это нашел... оказывается нужно посильнее снижать звук:
Листинг программы
  1. video.Audio.Volume = -10000
Надеюсь мои изыскания кому-нибудь помогут! Тему можно закрывать P.S. Надо по чаще писать на форум, решения так и сыплются ^_^
Нет... все равно что-то не так... периодически после проигрывания видео не показываются картинки, а периодически все нормально.... мистика какая-то... Помогите

Решение задачи: «Показ видео и картинок на форме»

textual
Листинг программы
  1. Me.SendToBack()

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

10   голосов , оценка 3.9 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы