我正在读取一个从Web服务保存为字节流的wav文件,并希望在显示我的记录时播放它。 Phone 7 app。
我的方法是在导航到记录时将字节流保存到隔离存储中的wav文件,然后在单击按钮并将其播放时将媒体播放器(MediaElement1)的源设置为该源。 / p>
以下是我在“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 :(得分: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,并将autoPlay设置为true。
首次使用它时,我确实遇到了上述问题。
我建议尝试以下方法来帮助调试:
确保文件已正确写入隔离存储中并完整写入。
处理MediaFailed事件以找出它无法正常工作的原因。
答案 1 :(得分:0)
我注意到的一件事是,当设备连接到计算机时,音频无法正常工作......在尝试收听mp3文件时花了几个小时的时间。