Windows Phone 8.1 MediaElement 灾难性故障(HRESULT 异常:0x8000FFFF (E_UNEXPECTED))

Posted

技术标签:

【中文标题】Windows Phone 8.1 MediaElement 灾难性故障(HRESULT 异常:0x8000FFFF (E_UNEXPECTED))【英文标题】:Windows Phone 8.1 MediaElement Catastrophic failure (Exception from HRESULT: 0x8000FFFF (E_UNEXPECTED)) 【发布时间】:2014-07-18 05:52:58 【问题描述】:

我一直有一个非常奇怪的问题,我无法解决。

我创建了非常简单的 WP 8.1 应用程序来显示问题:

MainPage.xaml:

<Page
    x:Class="App6.MainPage"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:local="using:App6"
    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" Source="/Assets/Audio/clap_01.mp3"
                      Visibility="Collapsed" AutoPlay="False" />

        <MediaElement x:Name="MediaElement2" Source="/Assets/Audio/click_01.mp3"
                      Visibility="Collapsed" AutoPlay="False" />

        <MediaElement x:Name="MediaElement3" Source="/Assets/Audio/cowbell_01.mp3"
                      Visibility="Collapsed" AutoPlay="False" />

        <MediaElement x:Name="MediaElement4" Source="/Assets/Audio/kick_01.mp3"
                      Visibility="Collapsed" AutoPlay="False" />

        <Button Content="Button" HorizontalAlignment="Left" Margin="125,118,0,0" VerticalAlignment="Top" Height="147"
                Width="150" Click="ButtonBase_OnClick" />


    </Grid>
</Page>

MainPage.xaml.cs:

namespace App6

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

            this.NavigationCacheMode = NavigationCacheMode.Required;
        

        protected override void OnNavigatedTo(NavigationEventArgs e)
        
        

        private void ButtonBase_OnClick(object sender, RoutedEventArgs e)
        
            MediaElement1.Play();
        
    

现在,如果我单击按钮(尤其是在打开应用程序之后),我会在 MediaElement1.Play();线。真正奇怪的事实是,只有当有 4 个或更多 MediaElements 并且其中有 1、2、3 个时,才会出现异常,并且它工作得很好。 我整天都在努力寻找解决这个问题的方法,如果能提供任何帮助,我将不胜感激。

【问题讨论】:

为什么要使用这么多 MediaElement?为什么不使用一个而只是更改来源? 这只是一个简单的例子来说明我的问题。在我实际制作的应用程序中,有多个按钮,每个按钮都有不同的声音。我希望他们能够同时播放声音。如果有更好的方法来做到这一点(不使用多个 MediaElements),我将不胜感激。 请原谅我对 WP8.1 的无知,但是您可以尝试使用MediaPlayer 吗?对于音频,您不需要可视树中的元素,MediaPlayer 需要在代码中实例化。如果它在 WP8.1 中不存在,我很抱歉。 尝试移除媒体元素的可见性属性。 @ScottNimrod - 没有任何区别 【参考方案1】:

由于您想同时播放多个声音,很遗憾,MediaElement 不适合您。您可能需要使用 XNA SoundEffect 类。

【讨论】:

WP 8.1 不再支持此类

以上是关于Windows Phone 8.1 MediaElement 灾难性故障(HRESULT 异常:0x8000FFFF (E_UNEXPECTED))的主要内容,如果未能解决你的问题,请参考以下文章

如何将 Windows 商店中的 Windows Phone 应用程序(8.1 XAML)迁移到 8.1 Silverlight?

csharp 在Windows 8.1和Windows Phone 8.1应用程序中运行的Expander控件的代码隐藏。

使用 Windows RT 的客户端证书(windows 8.1/windows phone 8.1)

Windows Phone 8.0 DLL 是不是与 Windows Phone 8.1 应用程序兼容?

当 Windows (phone) 8.1 应用程序在前台时接收并处理通知参数

我如何采取截图编程中的Windows Phone 8.1