Windows Phone 8.1 媒体元素致命错误(HRESULT 异常:0x8000FFFF(E_UNEXPECTED))

6

我一直遇到一个非常奇怪的问题,让我无法理解。

我创建了一个非常简单的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()行中收到“灾难性故障(HRESULT:0x8000FFFF(E_UNEXPECTED))”的错误消息。真正奇怪的事实是,只有当有4个或更多的MediaElements时,异常才会出现,如果只有1、2、3个,则完美地工作。 我尝试了整整一天来解决这个问题,并且非常感谢任何帮助。


为什么要使用这么多MediaElements?为什么不只使用一个并更改源呢? - Igor Ralic
这只是一个简单的例子,展示了我的问题。在我实际制作的应用程序中,有多个按钮,每个按钮都有不同的声音。我希望它们能够同时播放声音。如果有更好的方法来做到这一点(而不使用多个MediaElements),我将感激您的建议。 - RetSet
请原谅我对WP8.1的无知,但您可以尝试使用“MediaPlayer”吗?对于音频,您不需要在可视树中使用元素,并且“MediaPlayer”需要在代码中实例化。如果它在WP8.1中不存在,请接受我的道歉。 - erodewald
尝试移除媒体元素的可见性属性。 - Scott Nimrod
@ScottNimrod - 没有任何区别 - RetSet
1个回答

0

如果你想同时播放多个声音,MediaElement 不会对你有用。不幸的是,你需要使用 XNA 的 SoundEffect 类。


此类在WP 8.1中不再受支持。 - RetSet

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接