silverlight - 使用Silverlight 2进行短时音频缓存

标签 silverlight audio silverlight-2.0

我试图在Silverlight 2中创建的游戏中使用大量的简短声音样本。样本的长度不到2秒。

我希望在初始化过程中将所有音频样本加载到 Canvas 上。我一直在将媒体元素添加到 Canvas 和一个通用列表中进行管理。到目前为止,它似乎有效。

当我第一次演奏样本时,它演奏的很完美。如果它已经完成播放,并且我想重复使用相同的元素,则它会切断声音的第一部分。要再次播放样本,我停止播放媒体元素。

我是否应该使用其他方法来采样,以使音频不被剪切并获得良好的性能?

最佳答案

同样,最好将所有音频样本最初都带到客户端。根据您的设置方式,MediaElement可能会使用其渐进式下载功能从服务器获取媒体文件。尽管这本身没有什么问题(浏览器缓存应该在初次下载后可以为您提供帮助),但这确实意味着您必须处理浏览器缓存,并且那里存在一些潜在的问题。

可能的尝试步骤:

  • 将您的音频文件标记为“内容”。这将使它们在.xap中聚集起来。
  • 将音频文件加载到MemoryStreams中(请参见Application.GetResourceStream方法),然后调用MediaElement.SetSource()。

  • HTH,
    埃里克

    关于silverlight - 使用Silverlight 2进行短时音频缓存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/908505/

    相关文章:

    c# - 使用 WCF PollingDuplex 和 Silverlight 客户端时出现 MaxSessionsPerAddress 问题

    silverlight - 增长的ScrollView(高度="Auto"MaxHeight ="Stretch")

    audio - 将MediaPlayer与计时器配合使用

    audio - vlc - 不播放由 opus 库中的演示创建的 opus 文件

    wcf - Silverlight WCF 身份验证(从 WPF 到 Silverlight 的帮助)

    c# - Silverlight ReaderWriterLock 实现好/坏?

    silverlight - WP7 的文本框验证

    Android:如何访问音频文件?

    silverlight-3.0 - 如何从 ItemsControl 派生的自定义控件访问 ItemsHost

    c# - 在 Silverlight 中保留用户首选项