声音不会在用户控制中播放,但会在我的主页面 - Windows Phone中播放

时间:2013-04-13 14:03:20

标签: vb.net windows-phone-7 xaml

我的应用中有.wav文件音效。由于某种原因,它可以在一个地方正常播放(正常的电话页面),但是当在其他地方(在用户控制中)使用时,它无法播放(尽管我使用相同的代码并且代码正在执行 )。

奇怪的是(至少对我来说:))如果我在播放声音之前放置一个断点,然后点击继续,声音实际上会在模拟器中播放,这让我觉得我需要做一些额外的事情来获取我的声音usercontrol正确播放声音(因为相同的代码在别处工作)。

我在XAML中设置了这样的声音:

<MediaElement x:Name="StampSound"
             Source="/Sounds/stamp.wav"
             Volume="1"                          
             AutoPlay="False" />

我在XAML页面和我的用户控件中使用相同的代码来设置声音。然后,当我想要播放声音时,我使用以下内容:

  StampSound.Play()

这在我的主页面中正常工作,但是在我的用户控件中它没有发出声音(但代码正在执行,如果我放入断点然后继续声音将播放)。

所以我认为我的代码没问题,但也许我在用户控件中遗漏了一些东西。我尝试在UserControl_Loaded子中播放声音,在那里我也(成功地)实现了动画以与音频一起使用(顺便说一下,动画与我主页中声音的动画相同)。

是否存在一些我不知道的时间类问题?我很感激任何帮助或想法。

这适用于Windows Phone 8 XAML + VB.net,但我可以使用C#代码进行管理。

编辑:找到答案

好的,我找到了答案,因为我准备发布这个,但答案是针对一个稍微不同的问题,所以我想我会回答这个问题以防其他人碰到它。

(来自enter link description here

的回答

我显然试图在加载之前播放声音,所以我只是添加了一个处理程序,用于声音加载并在那里播放声音:

Private Sub StampSound2_MediaOpened(sender As Object, e As RoutedEventArgs) Handles StampSound2.MediaOpened
    StampSound2.Play()
End Sub

这对我有用,因为我需要尽快播放声音(即一旦加载控件它就应该一直播放)。

1 个答案:

答案 0 :(得分:0)

好的,我找到了答案,因为我准备发布这个,但答案是针对一个稍微不同的问题,所以我想我会回答这个问题以防其他人碰到它。

(来自enter link description here

的回答

我显然试图在加载之前播放声音,所以我只是添加了一个处理程序,用于声音加载并在那里播放声音:

Private Sub StampSound2_MediaOpened(sender As Object, e As RoutedEventArgs) Handles StampSound2.MediaOpened
    StampSound2.Play()
End Sub

这对我有用,因为我需要尽快播放声音(即一旦加载控件它就应该一直播放)。