更改背景图像后声音被禁用

时间:2014-05-01 09:01:18

标签: c# xaml windows-phone-8

更改背景图像后,我遇到声音被禁用的问题。

基本上,我拥有的是PanoramaItem。在那个项目中,我放置了一个大图像作为背景图像(让我们说一个标志)。在那个标志上,我有几个按钮可以改变按下时的按钮图像(在Blend中创建的XAML代码)并且还会播放声音。 (使用Click Event Handler Sound.Play();)

一切正常,只要图像预先加载(。布局 - 图像在后面,按钮在顶部/前面。

但是,我现在还添加了一个按钮,使用户可以使用PhotoChooserTask将图像更改为自己库中的图像。现在的问题是,是的,图像被用户选择的图像替换,但按钮不再播放任何声音。按下并释放时,按钮图像仍然会发生变化,这意味着该按钮仍然处于活动/启用状态,但声音被禁用或者点击偶数处理程序不再有效。

您是否知道为什么会这样?我昨晚整夜都玩弄它无法理解它。

非常感谢任何帮助: - )

修改

以下是我用来加载图片的代码:

void photoChooserTask_Completed(object sender, PhotoResult e)
 {
if (e.TaskResult == TaskResult.OK)
{
     System.Windows.Media.Imaging.BitmapImage bmp = new     System.Windows.Media.Imaging.BitmapImage();
   bmp.SetSource(e.ChosenPhoto);
   BackGroundIMG.Source = bmp;
}

}

我的XAML图片代码是:

<Image Name="BackGroundIMG" Source="/Assets/Test.jpg" Grid.RowSpan ="3" Grid.ColumnSpan = "3"/>

MediaSound的XAML代码是:

<MediaElement x:Name="Theme" Source="/Assets/Theme.wav" Volume="1" Autoplay="False"/>

Button的XAML代码是:

<Button Name="Button1" Click="Button1_Click" Grid.Row="1" Grid.Column ="1"/>

图像和按钮位于同一个网格中。在布局下,我将BackGroundImage设置为“Sent to Back”,按钮位于其上方。

用于播放声音的C#:

private void Button1_Click (object sender, RoutedEventargs e)
{Theme.Play();}

再次,当我启动应用程序时,声音播放正常,只需按下按钮,但一旦我更改背景图像,就不会播放声音。

所以我的猜测是,图片没有正确加载,但我不确定如何测试/更改它。

1 个答案:

答案 0 :(得分:0)

我认为问题不在于改变图像,而在于PhotoChooserTask的打开。我怀疑你是否使用了任何内置的发射器和选择器,音频也会被切断。 http://msdn.microsoft.com/en-us/library/windowsphone/develop/microsoft.phone.tasks(v=vs.105).aspx

要使MediaElement工作,它必须是可视树的一部分,否则它将停止播放。当这些选择器任务打开时,它们将导航离开当前页面。我认为如果您在App.Xaml中使用全局MediaElement,则可以解决此问题。这篇文章有一个创建全局媒体元素的方法:Global MediaElement that continues playing after navigating to other page