首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

请问个使用DirectX SDK开发视频播放功能的有关问题

2012-01-26 
请教个使用DirectX SDK开发视频播放功能的问题这几天看了这么篇文章:使用DirectX实现视频播放,觉得挺有意

请教个使用DirectX SDK开发视频播放功能的问题
这几天看了这么篇文章:使用DirectX实现视频播放,觉得挺有意思,于是自己也装了个SDK想试试。一样是WinForm程序,控件也是一模一样,代码目前我也没找到有什么区别,但是运行中会报错。.cs代码如下:

C# code
 
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using Microsoft.DirectX.AudioVideoPlayback;

namespace Video
{
    public partial class Form1 : Form
    {
        private Microsoft.DirectX.AudioVideoPlayback.Video MyVideo = null;

        public Form1()
        {
            InitializeComponent();
        }

        private void Open_Click(object sender, EventArgs e)
        {
            if (openFileDialog1.ShowDialog() == DialogResult.OK)
            {
                // 记录panel组件的大小
                int height = panel1.Height;
                int width = panel1.Width;

                // 如果存在打开的Video文件,释放它
                if (MyVideo != null)
                {
                    MyVideo.Dispose();
                }

                // 打开一个新的Video文件
                MyVideo = new Microsoft.DirectX.AudioVideoPlayback.Video(openFileDialog1.FileName);

                // 把Video文件分配给创建的Panel组件
                MyVideo.Owner = panel1;

                // 以记录的panel组件的大小来重新定义
                panel1.Width = width;
                panel1.Height = height;

                // 播放AVI文件的第一帧,主要是为了在panel中显示
                MyVideo.Play();
                MyVideo.Pause();
            }

            //确定窗体中的各按钮状态
            if (MyVideo == null)
            {
                Play.Enabled = false;
                Pause.Enabled = false;
                Stop.Enabled = false;
            }
            else
            {
                Play.Enabled = true;
                Pause.Enabled = true;
                Stop.Enabled = true;
            }

        }

        private void Play_Click(object sender, EventArgs e)
        {
            if (MyVideo != null)
            {
                MyVideo.Play();
            }


        }

        private void Pause_Click(object sender, EventArgs e)
        {
            if (MyVideo != null)
            {
                MyVideo.Pause();
            }
        }

        private void Stop_Click(object sender, EventArgs e)
        {
            if (MyVideo != null)
            {
                MyVideo.Stop();
            }
        }
    }
}



但是运行时,当我选择了视频文件之后,会抛出“应用程序错误”的异常。跟踪的结果是在Open_Click事件中的MyVideo = new Microsoft.DirectX.AudioVideoPlayback.Video(openFileDialog1.FileName)一句出的问题。小弟对DirectX的SDK也是糊涂状态,因此现在向各位高手请教:
1、报这个错误的原因是我的代码有问题?或者是因为没安装解码器?
2、这段程序是WinForm的,那么可不可以写成WebForm的?可以的话AudioVideoPlayback.Video.Owner应该怎么设置?
3、这段程序对视频文件的类型有要求吗?是任何类型的文件都可以播放还是只支持特定格式?

除此之外如果各位如果有通用的视频播放代码(可以兼容多种播放格式的)的不知道可不可以和小弟分享下。提前谢过各位

[解决办法]
1.你有装directx sdk环境吗?
2.webform不行.因为他不是后台运行,需要界面支持.
3.常见的格式是可以的,像mpg,rm/rmvb,avi(但有些压缩过的可能有问题)

[解决办法]
把那句话放到try里吧,看看异常提示是什么
[解决办法]
directx sdk环境不对吧?格式也可能不对,LZ再好好看看。
[解决办法]
我想应该是环境的问题,在好好看看吧
[解决办法]
up
[解决办法]
只有顶的份了

热点排行