使用Song.FromUri播放远程mp3

时间:2013-03-03 00:19:34

标签: windows-phone-7 azure-storage

我正在尝试播放Azure blob上托管的音频文件。我通过HTTP(不是HTTPS)提供服务,我使用Web客户端打开的流中使用SoundEffect.Play。这适用于WAV文件。

WebClient wc = new WebClient();
wc.OpenReadAsync(uri);
wc.OpenReadCompleted += (s, e) =>
{
    try
    {
        var sfx = SoundEffect.FromStream(e.Result);
        FrameworkDispatcher.Update();
        sfx.Play();
    }
    catch (Exception ex)
    {
        Debug.WriteLine("Well, crap!");
    }
};

对于MP3,我使用这种方法:

var song = Song.FromUri(item.Title, uri);
FrameworkDispatcher.Update();
MediaPlayer.Play(song);

它有时在模拟器中工作,但不在设备上!我甚至尝试不使用Zune来部署和使用WPConnect将XAP直接部署到设备上(有些人说这使它工作)

这让我疯了!这些mp3文件应该只播放,对吧?

1 个答案:

答案 0 :(得分:0)

是否可以播放MP3或者不能播放MP3取决于该文件的具体情况 看到 http://msdn.microsoft.com/en-us/library/windowsphone/develop/ff462087(v=vs.105).aspx#BKMK_AudioSupport了解支持的MP3的详细信息。

另请注意,设备和模拟器支持的编解码器存在一些差异,因此在某些情况下您可以在模拟器中播放内容但不能在设备上播放。