更改源后,MediaElement播放声音2次

时间:2014-06-01 01:02:49

标签: c# wpf xaml windows-phone windows-phone-8.1

我正在使用Windows Phone 8.1应用,我遇到了一个无法解决的问题。 我查找了我能找到的互联网上的每个代码,我一直试图找出问题的根源几个小时,但没有成功。 我们来看一个简单的代码:

XAML:

<Page
    x:Class="App8.MainPage"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:local="using:App8"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    mc:Ignorable="d"
    Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">

        <Grid>
            <MediaElement x:Name="MediaElement1" AutoPlay="False" Visibility="Collapsed"/>
            <Button Content="Button" HorizontalAlignment="Left" Margin="154,44,0,0" VerticalAlignment="Top"
                    Click="ButtonBase_OnClick"/>
        </Grid>
    </Page>

CS:

using System;
using System.Diagnostics;
using Windows.UI.Xaml;
using Windows.UI.Xaml.Controls;
using Windows.UI.Xaml.Navigation;

namespace App8
{
    public sealed partial class MainPage : Page
    {
        public MainPage()
        {
            this.InitializeComponent();

            this.NavigationCacheMode = NavigationCacheMode.Disabled;

            MediaElement1.MediaOpened += MediaElement1_MediaOpened;
        }

        void MediaElement1_MediaOpened(object sender, RoutedEventArgs e)
        {
            MediaElement1.Play();
        }


        private void ButtonBase_OnClick(object sender, RoutedEventArgs e)
        {
            MediaElement1.Source = new Uri("ms-appx:///Assets/Audio/SampleSets/First/clap_01.mp3");
        }
    }
}

现在,当我点击按钮时,声音会不时播放两次。有时候是第一次点击后,有时是10次之后。我只想强调,这只是简单的代码,以显示我的问题是什么,我真的不想一次又一次地将MediaElement的源更改为相同。

1 个答案:

答案 0 :(得分:2)

正如我所尝试的那样,在模拟器上运行时似乎(有时)会出现问题。

当我在设备上进行测试时,我无法重现相同的行为。