Visual Studio 2012UltimateでWindows8アプリを開発していますが、MediaOpenedイベントとMediaEndedイベントが発生しないMediaElementに問題があります。
以下は私のコードです:
public static async void PlaySound(string AudioFile, RoutedEventHandler PlayerEnded)
{
Uri audioUri = new Uri("ms-appx:///Assets/" + AudioFile);
StorageFile audioStorage = await StorageFile.GetFileFromApplicationUriAsync(audioUri);
if (audioStorage != null)
{
var stream = await audioStorage.OpenAsync(Windows.Storage.FileAccessMode.Read);
MediaElement player = new MediaElement();
player.AudioCategory = AudioCategory.GameEffects;
player.AutoPlay = false;
player.MediaEnded += PlayerEnded;
player.MediaOpened += new RoutedEventHandler(delegate(Object sender, RoutedEventArgs e)
{
player.Play();
});
player.SetSource(stream, audioStorage.ContentType);
}
}
基本的に、これにはボタンクリックサウンドファイルが渡され、再生が終了するとthis.Frame.Navigateメソッドが呼び出されて別のページに切り替わります。ただし、どのイベントも発生していないため、機能しません。
AutoPlay = trueに設定すると、正常に再生されますが、それでもイベントは発生しません。
誰かが何が悪いのかわかりますか?
ご協力いただきありがとうございます