private void Image_MouseLeftButtonDown(object sender, System.Windows.Input.MouseButtonEventArgs e)
{
snare.Play();
}
private void tom3Img_MouseLeftButtonDown(object sender, System.Windows.Input.MouseButtonEventArgs e)
{
tom3.Play();
}
private void tom2Img_MouseLeftButtonDown(object sender, System.Windows.Input.MouseButtonEventArgs e)
{
tom2.Play();
}
private void tom1Img_MouseLeftButtonDown(object sender, System.Windows.Input.MouseButtonEventArgs e)
{
tom1.Play();
}
private void kik_MouseLeftButtonDown(object sender, System.Windows.Input.MouseButtonEventArgs e)
{
kick.Play();
}
private void lCrash_MouseLeftButtonDown(object sender, System.Windows.Input.MouseButtonEventArgs e)
{
crashl.Play();
}
private void RCrash_MouseLeftButtonDown(object sender, System.Windows.Input.MouseButtonEventArgs e)
{
crashr.Play();
}
在xml中,每个声音都有单独的元素
<MediaElement Name="snare" HorizontalAlignment="Left" Height="19"
Margin="385,566,0,0" VerticalAlignment="Top" Width="42"
Visibility="Collapsed" AutoPlay="False" Volume="150" Source="/Music/snare.wav"/>
这些是我的xml和cs代码我试图以与Windows商店应用程序相同的方式创建鼓组。问题我无法理解一些事件有效,并且如果我对其他事件进行任何更改则停止。
文件夹中的所有声音文件调用音乐我尝试在cs中创建媒体元素并通过cs代码设置源
前snare.Source = new Uri("/Music/snare", UriKind.Relative);
它也不起作用。如果有人能帮我解决这个问题。
音频文件真的很短
答案 0 :(得分:2)
如果我已正确理解您的需求,那么您的问题是,使用Windows Phone MediaElement
(源msdn)一次只能播放一个曲目/文件:
当MediaElement控件播放音频或视频内容时,任何 背景声音或已经播放的媒体停止播放。该应用程序 当用户点击控件时启动播放体验。只要 一个MediaElement控件可以一次运行。
要做这样的事情,你可能必须使用XNA。这是一个有用的link,可以帮助您和一些选择的引号:
作者对Windows应用商店/ WP8的体验似乎与您的相近:
首先,我编写了Windows 8'Metro'风格的应用程序 听起来不错,所以当我们开始将Win8应用程序移植到WP8时,AND 理解现在WP8应该使用与Win8相同的内核, 我认为移植声音会很轻松。原来有 两个平台的一些微妙(而不是那么微妙)的差异。
所以他也有同样的问题:
另一个'陷阱' 到目前为止,我们只看过MediaElements 声音。但是,在WP8上,它只有一个媒体 元素可以一次播放。那么 - 如果你需要怎么做 多个同步声音效果在一起玩,如在游戏中? 好吧,那就是我们可以点击XNA库和它的SoundEffect。
最后,他得出了这个结论:
结论 所以最后,我决定使用媒体元素 在我的应用程序中播放背景音乐,以便我可以开始/停止 长时间播放声音文件,并使用XNA的SoundEffect 播放声音效果,快速射击,播放多种声音 一次全部。似乎对我有用,祝你好运!
答案 1 :(得分:0)
您可能只需要在图像的MouseLeftButtonDown事件上更改mediaElement的来源。 避免为每个声音使用单独的mediaElements。只需在xaml中定义单个MediaElement,并在每个图像事件上相应地更改源。
这样的事情:
private void Image_MouseLeftButtonDown(object sender, System.Windows.Input.MouseButtonEventArgs e)
{
snare.Source= new Uri("snare.mp3, UriKind.Relative");
snare.Play();
}