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

本文关键字:播放 版本 缓存 网站 何确保 确保 视频 | 更新日期: 2023-09-27 18:02:09

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

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使用Windows Media Services

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

虽然我已经投票决定关闭(我今天也有点脾气暴躁),但这里有我的两点意见:

我假设你正在使用DirectX的视频类,因此第一个问题必须是你是否对缓存有任何控制。

从API来看,你不能——你只需要传递一个Uri,就可以了。

所以我有几个问题:

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

  • 为什么它总是播放最新的版本?这实际上是因为如果网络连接断开,你想确保用户看不到视频吗?如果是这种情况,请尝试使用HttpWebRequest手动发出HTTP HEAD请求到视频url,或者(因为web服务器并不总是支持HEAD) ping众所周知的ping友好域名的老技巧,或者更好的是,在您自己的网站上发射web请求-如果网络连接断开,您甚至不要尝试播放视频。

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

在单次运行中找到它的最佳方法是使用进程监视器来监视您的机器的文件活动,而您的应用程序连接到视频并播放几秒钟。假设文件被应用程序直接访问(而不是通过一些服务或Dx shell的其他exe间接访问),你应该能够过滤捕获的事件到你的应用程序,你将看到大量的文件活动。