播放媒体文件,同时还在下载(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)的主要内容,如果未能解决你的问题,请参考以下文章
ios开发视频播放后台下载功能实现 :1,ios播放视频 ,包含基于AVPlayer播放器,2,实现下载,iOS后台下载(多任务同时下载,单任务下载,下载进度,下载百分比,文件大小,下载状态)(真机调