我想知道,如果有一种方法可以在Windows Phone中播放媒体文件,而这个文件仍在下载?
目前,我有一个具有功能的应用程序,可以在完全下载后下载和播放媒体文件。 (我使用article)
创建了此功能所以,简而言之,首先,从url下载媒体文件,然后我使用mediaElement来播放它:
mediaElement.source = isolatedStorageFileStream;
之后,我可以通过我的播放器UI使用此文件。
但是,我更喜欢让这个功能更好 - 允许开始播放文件,而下载仍在进行中。最后,这应该是这样的:开始下载文件,同时开始解密此文件,同时允许播放解密的文件部分。让我们忘记到目前为止的解密(我已经为下载的文件编写了一个方法,它应该稍微改变一下),主要的问题是如何允许两个并行的任务:下载和播放。
第一个问题是:“MediaElement是否只允许将”source“属性设置为仅固体(最终下载)文件,或者在下载期间它可以使用此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线程和流媒体的新手,不知道如何实现这样的功能。
P.S。当然,我试图找到一个类似的问题,但失败了。如果你知道一个,请给我一个链接。
P.P.S。抱歉我的英文。
答案 0 :(得分:0)
您只能使用BackgroundAudioPlayer流式传输它。
答案 1 :(得分:0)
您正在尝试读取正在使用的文件。我认为不可能。
然而: VideoRecorder使用filesink工作,并设法同时捕获,写入和显示。建议你看看那个区域
如何:在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