在xaml中我有:
<Page.Background>
<ImageBrush ImageSource="/TheseusAndTheMinotaur;component/Images/marbleBackground.jpg"/>
</Page.Background>
<Grid x:Name="mainGrid" Margin="0" IsHitTestVisible="True">
<Grid.ColumnDefinitions>
<ColumnDefinition/>
<ColumnDefinition Width="500" x:Name="gameArea"/>
<ColumnDefinition/>
</Grid.ColumnDefinitions>
<MediaElement x:Name="footStep" Source="minotaurFoot.mp3" Volume="1" LoadedBehavior="Manual"/>
<Button x:Name="btnExit" Content="Exit" HorizontalAlignment="Right" Margin="0,0,220,20" VerticalAlignment="Bottom" Width="75" Click="btnExit_Click" Grid.Column="2" IsHitTestVisible="True"/>
<Canvas x:Name="pbxMap" Margin="10" Grid.Column="1" Background="#7F000000" IsHitTestVisible="True" Focusable="True"/>
</Grid>
在我发起的方法中:
this.myGamePlayerPage.footStep.Play();
没有声音播放,但没有错误。任何想法为什么会这样?谢谢。
编辑:我将源代码更改为:Source="C:\newnew\TheseusAndTheMinotaur\minotaurFoot.mp3"
并且可以正常运行。但这并不好。它不适用于其他的ocmputers。
答案 0 :(得分:2)
您的设置似乎是正确的,但我想MediaElement
无法找到minotaurFoot.mp3
。注册MediaFailed
- MediaElement
的事件,并检查它是否被引发。传递给方法的ExceptionRoutedEventArgs
应包含有关文件无法播放的原因的信息。
<强> XAML 强>
<MediaElement x:Name="footStep"
MediaFailed="MediaFailedHandler"
Source="minotaurFoot.mp3"
Volume="1"
LoadedBehavior="Manual"/>
<强> C#强>
public void MediaFailedHandler(object sender, ExceptionRoutedEventArgs e){
// e.ErrorException contains information what went wrong when playing your mp3
}
<强>更新强>
您还需要将mp3复制到项目的输出文件夹中。这可以通过在高级设置Copy always
中设置Copy if newer
或Copy to Output directory
来完成。
在项目中选择mp3文件,右键单击打开ContextMenu。然后选择属性并在上面进行指定设置。