gpt4 book ai didi

c# - 使用 Silverlight 播放用户的歌曲

转载 作者:太空宇宙 更新时间:2023-11-03 14:24:59 25 4
gpt4 key购买 nike

有没有人有一个有效的(经过测试的)代码示例来播放隔离存储中的音频文件。我目前拥有的不抛出异常或发出任何声音的代码是:

        MediaElement ME = new MediaElement();
ME.AutoPlay = false;
IsolatedStorageFile ISF = IsolatedStorageFile.GetUserStoreForApplication();
ME.SetSource(ISF.OpenFile("foo.wav", FileMode.Open));
ME.Play();

我尝试过使用多种不同的音频格式,使用 Expression 进行编码,但我总是遇到同样的问题。

此外,我非常喜欢一个使用文件浏览器从文件流加载歌曲的示例,但这不太重要,并且可以轻松转换独立存储示例。

我已经检查过,如果我将文件嵌入到应用程序中,它可以正常播放。问题是我希望用户能够将他们自己的歌曲加载到应用程序中,然后这些歌曲将存储在隔离存储中并从中播放。

最后,与示例一样,我宁愿使用 C# 代码而不是 XAML 来执行此操作。

最佳答案

  1. 您不能在与 SetSource 命令相同的方法中使用 Play 命令,因为文件将异步打开。通过将 AutoPlay 设置为 true(这也是默认值)。您确保它会在加载后立即播放。

    MediaElement ME = new MediaElement();
    ME.AutoPlay = true;
    IsolatedStorageFile ISF = IsolatedStorageFile.GetUserStoreForApplication();
    ME.SetSource(ISF.OpenFile("foo.wma", FileMode.Open));
  2. Silvelright 本身不支持 wav 文件,因此要播放 wav 文件,您需要下载 http://code.msdn.microsoft.com/wavmss ,然后使用以下代码。

    MediaElement ME = new MediaElement();
    ME.AutoPlay = true;
    IsolatedStorageFile ISF = IsolatedStorageFile.GetUserStoreForApplication();
    ME.SetSource(new WaveMediaStreamSource(ISF.OpenFile("foo.wav", FileMode.Open)));

    虽然不理想,但您可以使用文件扩展名来检测 wav 文件何时正在播放,并且仅在这种情况下使用第二个代码示例。

关于c# - 使用 Silverlight 播放用户的歌曲,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4331553/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com