【发布时间】:2016-01-09 23:33:18
【问题描述】:
我的应用程序中的资产/音频下有几个 .wav 和 .mp3 文件,当在 UI 中点击某些内容时,我正在尝试播放它们。我编写了以下代码(文件名硬编码用于测试目的),但是当函数被触发时,没有声音播放。如果我将尝试从文件播放替换为播放由 Windows.Media.SpeechSynthesis.SpeechSynthesizer 创建的音频流,则一切正常。
private async void SoundItem_Tapped(object sender, TappedRoutedEventArgs e)
{
ListViewItem soundItem = sender as ListViewItem;
if (soundItem.IsSelected)
{
Uri sourceUri = new Uri(String.Format("ms-appx:///Assets/Audio/151Cry.wav", UriKind.Absolute));
await PlayAudio(sourceUri, soundItem);
}
else if (inUsePlayers.ContainsKey(soundItem))
{
MediaElement player = inUsePlayers[soundItem];
player.Stop();
inUsePlayers.Remove(soundItem);
players.Enqueue(player);
}
else
{
}
}
private async Task PlayAudio(Uri sourceUri, ListViewItem soundItem)
{
MediaElement player = RequestPlayer(soundItem);
player.Source = sourceUri;
player.IsLooping = true;
await player.Dispatcher.RunAsync(CoreDispatcherPriority.Normal, () =>
{
player.Stop();
player.Play();
});
}
这是文件在树中的位置:
除了将声音文件拖入项目之外,我还没有做任何事情。也许它们需要添加到资源文件或复制到输出文件夹?如果 URI 指向的项目不存在,我预计会抛出异常,但没有抛出任何东西,即使我给它一个虚假的文件名。
【问题讨论】:
标签: c# .net windows windows-10 win-universal-app