在Windows Phone 7中使用MediaElement播放mp3

时间:2012-11-23 16:39:47

标签: windows-phone-7 windows-phone

我正在尝试使用Windows Phone 7中的MediaElement播放mp3。这是代码。请帮助我,我甚至没有得到错误......但这首歌也没有播放......

private void button1_Click_1(object sender, RoutedEventArgs e)
    {
        mediaElement.Source = new Uri("Song.mp3", UriKind.Relative);
        if (mediaElement.CurrentState == MediaElementState.Playing)
        {
            button1.Content = "Pause";
            mediaElement.Pause();
        }
        else
        {
            button1.Content = "Play";
            mediaElement.Play();
        }
    }

XAML Page

<Grid x:Name="ContentPanel" Grid.Row="1" Margin="12,0,12,0">
        <MediaElement Height="201" HorizontalAlignment="Left" Margin="9,6,0,0" Name="mediaElement" VerticalAlignment="Top" Width="441" />
        <Button Content="Button" Height="72" HorizontalAlignment="Left" Margin="12,213,0,0" Name="button1" VerticalAlignment="Top" Width="438" />
    </Grid>

3 个答案:

答案 0 :(得分:0)

请确保该文件的URI是正确的。并且Song.mp3需要设置为“内容”而不是“资源”文件。而且我认为您还需要在文件中设置“复制到目标,如果更新”。

答案 1 :(得分:0)

媒体元素需要加载其媒体才能调用Play(),否则不会发生任何事情。加载媒体时会触发事件MediaOpened。

myMediaElement.MediaOpened += (o, args) => myMediaElement.Play();

答案 2 :(得分:0)

在XAML中:

{<Grid x:Name="ContentPanel" Margin="12,160,12,0" Grid.RowSpan="2">
            <Button Content="Xaml Play" Name="button1" Click="button1_Click" />
            <MediaElement x:Name="playSound" Source="sounds/Loose.wav" AutoPlay="False" Height="0" Width="0"  /></Grid>}

在C#中:

private void button1_Click(object sender, RoutedEventArgs e)
        {
            playSound.Play();
        }

希望这有助于:)