在我的 SoundBoard 应用中播放 CustomSounds
Posted
技术标签:
【中文标题】在我的 SoundBoard 应用中播放 CustomSounds【英文标题】:Playing CustomSounds in my SoundBoard app 【发布时间】:2014-05-31 11:37:28 【问题描述】:我目前正在制作一个基本的 SoundBoard 应用程序,其中我有一些硬涂层声音,即动物、卡通等,我还添加了一个自定义声音选项,以便用户可以录制新声音并将其保存以从列表...一切正常,但是当我保存声音时,单击播放按钮时它不会播放,否则声音会在保存之前播放...我添加了以下代码以区分黑白自定义声音并已保存声音播放但是它似乎对我不起作用..
if (File.Exists(data.FilePath))
AudioPlayer.Source = new Uri(data.FilePath, UriKind.RelativeOrAbsolute);
else
using (var storageFolder = IsolatedStorageFile.GetUserStoreForApplication())
using(var stream = new IsolatedStorageFileStream(data.FilePath, FileMode.Open
,FileAccess.Read , storageFolder))
AudioPlayer.SetSource(stream);
非常感谢您的帮助...
【问题讨论】:
如果我不得不冒险猜测而不查找IsolatedStorageFileStrem
s 我会说这是因为在您的 if
语句中您正在检查文件是否存在,然后在您的 else
声明您使用文件路径作为参数。您已经验证该文件不存在,流应该如何打开它?
@Leon Newswanger,感谢您的评论,但在 if 语句中,我正在检查文件是否存在于我的资产中,在 else 语句中,我正在引用手机内存中保存自定义声音的独立存储....不知道该怎么办,我被卡住了..
好的,我现在明白你的意思了。我误解了你这样做的背景。话虽如此,您是否收到任何类型的错误或警告,还是根本无法播放?
完全没有错误或异常,录制的声音在我录制后播放时播放,但当我永久保存时不会播放,即在手机的应用程序隔离存储中..
好的,这是一个愚蠢的问题,但是,除了录制的声音文件之外,您是否尝试访问隔离存储中的任何文件?另外,您是使用模拟器还是物理设备进行测试?
【参考方案1】:
试试这个:
AudioPlayer.Play();
如果它不适合你,你可以这样做
MediaElement media = new MediaElement();
using (IsolatedStorageFile myIsolatedStorage = IsolatedStorageFile.GetUserStoreForApplication())
using (IsolatedStorageFileStream fileStream = myIsolatedStorage.OpenFile(FileName, FileMode.Open, FileAccess.Read))
media.SetSource(fileStream);
media.Play();
grid.Children.Add(media);
【讨论】:
以上是关于在我的 SoundBoard 应用中播放 CustomSounds的主要内容,如果未能解决你的问题,请参考以下文章