C# 如何确保视频从网站播放,而不是缓存版本

C# 如何确保视频从网站播放,而不是缓存版本,c#,C#,我使用了下面的代码(从网站上读取视频并在面板上播放),但该视频存储在我的计算机上 using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using Microsoft.DirectX.A

我使用了下面的代码(从网站上读取视频并在面板上播放),但该视频存储在我的计算机上

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using Microsoft.DirectX.AudioVideoPlayback;
namespace webplayer
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            try
            {
                int width = panel1.Width;
                int height = panel1.Height;
              System.Uri u = new Uri("http://cassfordinfo.com/Testmovie.avi");                Video video;
              video = Video.FromUrl(u);

                video.Owner = panel1;
                video.Stop();
                video.Play();

                // resize the video to the size original size of the panel

                panel1.Size = new Size(width, height);
            }catch(Exception gh)
            {
                MessageBox.Show(gh.ToString());
            }
        }

    }
}
一旦我运行exe,它将从网站上读取,但我已拔下互联网连接并运行它。它在没有连接的情况下运行相同的视频。我已经重新启动了我的电脑,如果我再次运行exe文件,我可以查看视频


每当我需要运行这个程序,它应该从我的网站,而不是从临时文件读取它。我怎样才能做到这一点呢?

我相信您希望了解媒体流。这可以通过多种方式实现——有些人会建议silverlight,但据我所知,可以通过asp.Net使用


它也可以从其他项目类型以不同的方式完成,但看起来ASP.Net需要它?

尽管我投票决定关闭(我今天也有点脾气暴躁),但我还是要付两分钱:

我假设您使用的是来自DirectX的,因此第一个问题必须是您是否可以控制缓存

根据API判断,你不能——你只需要给它传递一个Uri,就这样

因此,我有几个问题:

  • 您是否尝试过播放上一次播放之间发生变化的视频?应用程序是否正确使用新版本而不是旧的缓存版本?如果是这样,那么当用户的网络连接良好时,大概就没有问题了

  • 为什么它总是播放最新版本?是不是因为如果网络连接中断,你想确保用户看不到视频?如果是这种情况,请尝试使用
    HttpWebRequest
    手动向视频url发出HTTP HEAD请求,或者(因为HEAD并不总是受web服务器支持)ping著名的ping友好域名的老把戏,或者更好,在您自己的网站上启动web请求-如果网络连接中断,您甚至不尝试播放视频

最后,我想你是在寻找这个文件,所以你可以尝试删除它。我的猜测是,这几乎不可能在运行时跟踪-该文件可能甚至没有.avi扩展名,并且可能是随机的


不过,要在一次运行中找到它,最好的办法是在应用程序连接到视频并播放几秒钟的同时,使用它来监视计算机的文件活动。假设应用程序直接访问该文件(而不是通过Dx Shell提供的某些服务或其他exe间接访问),您应该能够将捕获的事件过滤到您的应用程序,您将看到大量的文件活动。

很抱歉,我不认为这是编程问题。您问我们如何在您的计算机上查找文件我想它可能在您的临时internet文件中的某个位置打开Windows资源管理器-执行“查找”并搜索今天创建的“*.avi”。根据您是否已打开索引以及硬盘的大小,这可能需要一段时间。@Andras Zoltan:如果目标是修改程序,使其不使用缓存版本,则可能会被解释为编程问题。@forsvarir-是的,我同意;但是,问题文本是“请帮助我查找存储在计算机上的临时视频文件”。这个问题应该重写为“如何阻止此视频类缓存?”以及有关视频类的信息