我们的应用程序是基于视频/音频的应用程序,并且我们已将所有媒体上传到Windows Azure。

但是,需要方便用户按需下载音频/视频文件,以便他们可以在本地播放。

因此,我需要以编程方式下载音频/视频文件,并将其保存在IsolatedStorage中。

每个音频/视频都有Windows Azure媒体文件访问URL。但是我陷入了下载媒体文件的第一步。

我在googlet上搜索并遇到了this article,但是对于WebClient来说,没有可以使用的功能DownloadFileAsync。

但是,我尝试了其其他功能DownloadStringAsyn,并且下载的媒体文件为字符串格式,但不知道如何将其转换为音频(wma)/视频(mp4)格式。请提出建议,我该如何进行?还有其他下载媒体文件的方法吗?

这是我使用的示例代码

private void ApplicationBarMenuItem_Click_1(object sender, EventArgs e)
    {
        WebClient mediaWC = new WebClient();
        mediaWC.DownloadProgressChanged += new DownloadProgressChangedEventHandler(mediaWC_DownloadProgressChanged);
        mediaWC.DownloadStringAsync(new Uri(link));
        mediaWC.DownloadStringCompleted += new DownloadStringCompletedEventHandler(mediaWC_DownloadCompleted);

    }

    private void mediaWC_DownloadCompleted(object sender, DownloadStringCompletedEventArgs e)
    {
        if (e.Cancelled)
            MessageBox.Show("Downloading is cancelled");
        else
        {
            MessageBox.Show("Downloaded");
        }
    }

    private void mediaWC_DownloadProgressChanged(object sender, DownloadProgressChangedEventArgs e)
    {
        statusbar.Text = status= e.ProgressPercentage.ToString();
    }

最佳答案

要下载二进制数据,请使用[WebClient.OpenReadAsync][1]。您可以使用它下载字符串数据以外的数据。

var webClient = new WebClient();
webClient.OpenReadCompleted += OnOpenReadCompleted;
webClient.OpenReadAsync(new Uri("...", UriKind.Absolute));

private void OnOpenReadCompleted(object sender, OpenReadCompletedEventArgs e)
{

}

关于audio - 在Windows Phone 8中以编程方式下载媒体文件,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15880890/

10-10 21:48
查看更多