2013-11-28 170 views
1

在XAML我:的MediaElement不會播放MP3

<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。

回答

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 to Output directory中設置Copy alwaysCopy if newer完成的。

選擇您的項目中的mp3文件,右鍵單擊打開ContextMenu。然後選擇屬性並在上面進行指定的設置。

+0

謝謝!它說它無法找到媒體文件。我的文件直接在項目中。有了這個位置的圖像。這是MP3的問題嗎? – user2602079

+0

@ user2602079不,沒有MP3文件的問題。您只需更改MediaElement的Source屬性。嘗試使用這個'/ TheseusAndTheMinotaur; component/minotaurFoot.mp3'。或者使用Visual Studio的PropertyWindow來設置Source – Jehof

+0

沒有這樣的運氣。我也把它放在Images文件夾中,並提供與我的圖像相同的文件路徑,但沒有運氣。不過謝謝。 – user2602079