【问题标题】:Playing a Media File from Isolated Storage从独立存储播放媒体文件
【发布时间】:2010-11-24 06:49:13
【问题描述】:

我正在从 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();

【问题讨论】:

  • 我真的不知道问题是什么。

标签: windows-phone-7 isolatedstorage


【解决方案1】:

您不必创建 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,并将 autoPlay 设置为 true。

我在第一次使用时确实遇到了一些问题。

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

  1. 确保文件已正确且完整地写入隔离存储。

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

【讨论】:

  • 你这该死的摇滚!与这个斗争了几个小时。
【解决方案2】:

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

【讨论】:

  • 如果您想在连接到 PC 时访问设备上的媒体,请使用 WPConnect.exe 而不是 Zune 进行连接。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-05-18
相关资源
最近更新 更多