Windows phone 7 从独立存储中播放媒体文件

Windows phone 7 从独立存储中播放媒体文件,windows-phone-7,isolatedstorage,Windows Phone 7,Isolatedstorage,我正在从web服务读取一个保存为字节流的wav文件,并希望在显示我的记录时播放它。电话7应用程序 我的方法是在导航到记录时将字节流保存到隔离存储中的wav文件中,然后在单击按钮时将媒体播放器(MediaElement1)的源设置为该源并播放 下面是我的“播放按钮”中的当前代码。(大小与字节流匹配,但没有音频结果)。如果我将流设置为作为资源存储的WAV文件,那么它确实可以工作,所以我可能只需要知道如何将Uri设置为独立存储文件 (例如,以下代码工作) 这是我的代码示例。。。有什么想法吗 Isola

我正在从web服务读取一个保存为字节流的wav文件,并希望在显示我的记录时播放它。电话7应用程序

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

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

(例如,以下代码工作)

这是我的代码示例。。。有什么想法吗

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();

您不必创建两个媒体元素。直接在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,并将autoPlay设置为true

我确实有一些问题与上述当第一次得到它的工作

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

  • 确保文件已正确且完整地写入独立存储

  • 处理MediaFailed事件以找出其不工作的原因


  • 我注意到的一件事是,当设备连接到计算机时,音频无法工作。。。在尝试收听mp3文件时,花了几个小时使用此设备。

    我真的不知道问题出在哪里。如果你想在连接到PC时访问设备上的媒体,请使用WPConnect.exe而不是Zune进行连接。你真是太棒了!为此奋斗了几个小时。
    using (var isf = IsolatedStorageFile.GetUserStoreForApplication())
    {
        using (var isfs = new IsolatedStorageFileStream("trailer.wmv", FileMode.Open, isf))
        {
            this.movie.SetSource(isfs);
        }
    }