1

MediaElement で Web からビデオを再生し、同時にビデオもダウンロードしたいと考えています。

Stream をソースとして設定して実行しようとしましたが、うまくいきません。それは可能ですか?


編集:

これが今のところ私がしていることです。問題は、ファイルのダウンロードが終了したときではなく、最初から再生を開始したいということです:

    public void StartDownloadFile(string aVideoUrl,string aId)
    {
        this.VideoUrl = aVideoUrl;
        this.id = aId;

        startPlaying = false;

        WebClient webClient = new WebClient();
        webClient.DownloadProgressChanged += new DownloadProgressChangedEventHandler(webClient_DownloadProgressChanged);
        webClient.OpenReadCompleted += new OpenReadCompletedEventHandler(webClient_OpenReadCompleted);
        webClient.OpenReadAsync(new Uri(this.VideoUrl));
    }

    void webClient_OpenReadCompleted(object sender, OpenReadCompletedEventArgs e)
    {
        try
        {
            if (e.Result != null)
            {

                #region Isolated Storage Copy Code
                isolatedStorageFile = IsolatedStorageFile.GetUserStoreForApplication();

                bool checkQuotaIncrease = this.IncreaseIsolatedStorageSpace(e.Result.Length);

                string VideoFile = "VideoCache\\" + this.id + ".wmv";
                isolatedStorageFileStream = new IsolatedStorageFileStream(VideoFile, FileMode.Create, isolatedStorageFile);
                long VideoFileLength = (long)e.Result.Length;
                byte[] byteImage = new byte[VideoFileLength];
                e.Result.Read(byteImage, 0, byteImage.Length);
                isolatedStorageFileStream.Write(byteImage, 0, byteImage.Length);

                #endregion

                callbackFinish();

            }
        }
        catch (Exception ex)
        {
            //MessageBox.Show(ex.Message);
        }
    }

    void webClient_DownloadProgressChanged(object sender, DownloadProgressChangedEventArgs e)
    {
        try
        {
            callbackDidUpdate((double)e.ProgressPercentage);

        }
        catch (Exception ex)
        {
            //MessageBox.Show(ex.Message);
        }
    }
4

0 に答える 0