播放媒体文件,同时还在下载(Windows Phone)

Posted

技术标签:

【中文标题】播放媒体文件,同时还在下载(Windows Phone)【英文标题】:Play media file, while it is still downloading (Windows Phone) 【发布时间】:2012-07-25 10:52:16 【问题描述】:

我想知道,是否有办法在 Windows Phone 中播放媒体文件,同时该文件仍在下载?

目前,我有一个具有功能的应用程序,允许在完全下载后下载和播放媒体文件。 (我创建了这个功能,使用article)

所以,简而言之,首先从 url 下载媒体文件,然后我使用 mediaElement 来播放它:

mediaElement.source = isolatedStorageFileStream;

之后,我可以通过我的播放器 UI 使用这个文件。

但是,我更喜欢改进此功能 - 允许在下载仍在进行时开始播放文件。最后,这应该是这样的:开始下载文件,同时开始解密这个文件,同时允许播放文件的解密部分。解密到此为止吧(我已经写了一个下载文件的方法,那应该稍微改一下),主要的问题是如何允许两个并行任务:下载和播放。

第一个问题是:“MediaElement 是否只允许将“源”属性设置为仅实体(最终下载的)文件,或者它也可以在下载过程中使用此 Stream”? 因为,我找到了一些信息,那就是:

"MediaElement 目前不支持流式传输。它 在实际播放之前先加载整个文件。”

,虽然我不确定,这个是指Windows Phone,但听起来相当着急。

如果无法做到这一点,我还能用什么来处理媒体文件?我对下载视频不感兴趣,我们只限制 mp3 音频文件。

现在,下载过程是这样实现的:

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

然后在 OpenReadCompleted 中将下载文件流设置为 mediaFile 的源。

mediaFile.SetSource(isolatedStorageFileStream);

之后我可以使用我的媒体文件。

我的问题有解决方案吗?我是 Windows Phone 线程和流式处理的新手,不知道如何实现这样的功能。

附:当然,我试图找到一个类似的问题,但失败了。如果你知道,请给我一个链接。

附言对不起我的英语。

【问题讨论】:

【参考方案1】:

您只能使用 BackgroundAudioPlayer 进行流式传输。

【讨论】:

【参考方案2】:

您正在尝试读取正在使用的文件。我认为不可能。

但是: VideoRecorder 使用文件接收器工作,并设法同时捕获、写入和显示。建议你去那个地区看看

如何:在 Windows Phone 的相机应用程序中录制视频 http://msdn.microsoft.com/en-us/library/hh394041(v=vs.92).aspx

文件接收器 http://msdn.microsoft.com/en-us/library/system.windows.media.filesink(VS.95).aspx

【讨论】:

以上是关于播放媒体文件,同时还在下载(Windows Phone)的主要内容,如果未能解决你的问题,请参考以下文章

windows编程怎么同时播放两个或者多个声音文件?

ios开发视频播放后台下载功能实现 :1,ios播放视频 ,包含基于AVPlayer播放器,2,实现下载,iOS后台下载(多任务同时下载,单任务下载,下载进度,下载百分比,文件大小,下载状态)(真机调

同时下载和播放由多个 URL 拼凑而成的歌曲

windows media player如何播放mp4视频文件?

在IOS中同时播放音视频

iOS 将视频作为下载数据播放