2010-10-26 65 views
0

我正在读取保存为来自Web服务的字节流的wav文件,并且想要在显示我的记录时播放它。电话7应用程序。从独立存储播放媒体文件

我的方法是在导航到记录时将字节流保存到隔离存储器中的wav文件,然后在单击按钮并播放时将媒体播放器(MediaElement1)的源设置为该源。

下面是我在“PlayButton”中的当前代码。 (大小匹配字节流但没有音频结果)。如果我将流设置为一个存储为资源的WAV文件,它可以工作,所以我可能只需要知道如何将Uri设置为独立存储文件。

(如下面的代码工作)

Mediaelement1.Source = new Uri("SampleData\\MyMedia.wav",UriKind.Relative) Works 
Mediaelement1.Position = new TimeSpan(0,0,0,0) ; 
Mediaelement1.Play() ; 

这里是我的代码示例...任何想法?

IsolatedStorageFile isf = IsolatedStorageFile.GetUserStoreForApplication() ; 
IsolatedStorageFileStream str = new IsolatedStorageFileStream(
    "MyMedia.wav", FileMode.Open, isf) ; 
long size = str.Length; 
mediaelement mediaelement = new MediaElement() ; 
mediaelement.SetSource(str) ; 
mediaElement1.Source = mediaelement.Source ; 
mediaElement1.Position = new TimeSpan(0, 0, 0, 0); 
mediaElement1.Play(); 
+0

我真的不知道什么是问题。 – 2010-10-26 14:07:42

回答

2

您不应该创建2个媒体元素。请直接在mediaElement1上拨打.SetSource

我有类似的代码设置的MediaElement源到电影独立存储和工作正常:

using (var isf = IsolatedStorageFile.GetUserStoreForApplication()) 
{ 
    using (var isfs = new IsolatedStorageFileStream("trailer.wmv", FileMode.Open, isf)) 
    { 
     this.movie.SetSource(isfs); 
    } 
} 

通过以上,movie是我已经在XAML中创建并设置自动播放功能,一个MediaElement的真正。

第一次得到它时,我确实遇到了上述问题。

我建议您尝试以下方法,帮助调试:

  1. 确保该文件已被正确的写入独立存储,并在它的全部。

  2. 处理MediaFailed事件以找出它不工作的原因。

+1

你疯了!与此战斗数小时。 – 2011-07-04 23:32:38

+0

@Shawn不用担心 – 2011-07-05 08:10:43

0

有一两件事我注意到的是,当设备被拴在电脑音频不能正常工作,试着听mp3文件时,花了几个小时,这一个。

+1

如果您想在连接到PC时访问设备上的介质,请使用WPConnect.exe而不是Zune进行连接。 – 2010-11-23 23:13:35