Так как еще плоховато ориентируюсь по сайту не обижайтесь на отсутствие скриншотов.
Итак, приступим:
Для начала подключим 3 библеотеки: Microsoft.DirectX.AudioVideoPlayback, Tao.OpenGl и Tao.Platform.Windows.
Юзаем их в проект:
using Microsoft.DirectX.AudioVideoPlayback;
using Tao.OpenGl;
using Tao.Platform.Windows;
Обьявляем переменную eMovie в классе формы.
Microsoft.DirectX.AudioVideoPlayback.Video eMovie;
После этого на форму ставим контролл OpenGL и называем его AnT.
Дальше в коде пишем (после строчки InitializeComponent();):
AnT.InitializeContexts();
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None; //Убираем стиль формы.
this.WindowState = System.Windows.Forms.FormWindowState.Maximized; //Делаем на весь экран.
this.TopMost = true; //По верх остальных окон.
Cursor.Hide(); //Скрываем курсор.
Выходим в дизайнер форм и клацаем по нашей форме 2 раза чтобы автоматически прописать событие Form_load.
А в событии пишем:
Gl.glClear(Gl.GL_DEPTH_BUFFER_BIT|Gl.GL_COLOR_BUFFER_BIT); //Очищаем буферы перед воспроизведением.
eMovie = Video.FromFile("C:\\Video\\qwerty.wmv", true); //Задаем путь для видео. true значит что видео воспроизведется автоматически.
eMovie.Owner = AnT; //Воспроизводим в нашем контролле.
Вот и все. Но по хорошему немешало бы сделать так, чтобы видео останавливалось по нажатию клавиши, как это обычно (но не всегда) делают в играх.
Для этого нам нужно перейти в дизайнер форм -> кликнуть один раз по нашему AnT, посмотреть на таблицу свойст которая находится с права, найти на верху молнию, нажать на нее, найти KeyDown и клацнуть по нему пару раз.
Автоматически создается событие AnTKeyDown. В нем пишем:
if (e.KeyCode == Keys.Escape) //по нажатию на Escape происходит...
{
eMovie.Stop(); //остановка видео
eMovie = null; //очищаем переменную для экономии места ОЗУ
Gl.glClear(Gl.GL_COLOR_BUFFER_BIT|Gl.GL_DEPTH_BUFFER_BIT); //очистка
Вот собственно и все.
Так как исходники выложить немогу, напишу все сдесь для тех кто не совсем поняли что и куда:
using System;
using System.Collections.Generic;
using System.Drawing;
using System.Windows.Forms;
using Microsoft.DirectX.AudioVideoPlayback;
using Tao.OpenGl;
using Tao.Platform.Windows;
namespace VideoGL
{
public partial class MainForm : Form
{
Microsoft.DirectX.AudioVideoPlayback.Video eMovie;
public MainForm()
{
InitializeComponent();
AnT.InitializeContexts();
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None;//Убираем стиль формы.
this.WindowState = System.Windows.Forms.FormWindowState.Maximized; //Делаем на весь экран.
this.TopMost = true; //По верх остальных окон.
Cursor.Hide(); //Скрываем курсор.
}
void MainFormLoad(object sender, EventArgs e)
{
Gl.glClear(Gl.GL_DEPTH_BUFFER_BIT|Gl.GL_COLOR_BUFFER_BIT); //Очищаем буферы перед воспроизведением.
eMovie = Video.FromFile("C:\\Video\\qwerty.wmv", true); //Задаем путь для видео. true значит что видео воспроизведется автоматически.
eMovie.Owner = AnT; //Воспроизводим в нашем контролле.
}
void AnTKeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Escape) //по нажатию на Escape происходит...
{
eMovie.Stop(); //остановка видео
eMovie = null; //очищаем переменную для экономии места ОЗУ
Gl.glClear(Gl.GL_COLOR_BUFFER_BIT|Gl.GL_DEPTH_BUFFER_BIT); //очистка
}
}
}
}
Комментарии (9)
rss свернуть / развернутьмне не нравится только Microsoft.DirectX.AudioVideoPlayback
=(
свернуть ветку
свернуть ветку
свернуть ветку
свернуть ветку
свернуть ветку
свернуть ветку
свернуть ветку
Там в редакторе есть кнопка «вставить картинку», нужно выбрать файл желательно сразу корректного размера, url не указывать. Должно получится.
свернуть ветку
А. Вон оно что. Спасибо:)
При написании следующего урока разобрался:) Но все равно спасибо.
свернуть ветку