媒体元素不在Windows应用商店中播放音频

时间:2014-03-21 18:00:22

标签: c# xaml windows-8.1

我想在我的应用中播放mp3音频,但什么也没发生 我的代码就是这个

XAML:

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

    <Grid Background="Black">

        <StackPanel Width="900" Height="700" HorizontalAlignment="Center">
            <MediaElement HorizontalAlignment="Left" Name="a" AutoPlay="False" Source="azan.mp3" Height="100" Margin="451,299,0,0" VerticalAlignment="Top" Width="100" Volume="100"/>

            <Button Content="Button" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Margin="0,0,676,0" Height="189" Click="Button_Click"/>
        </StackPanel>
    </Grid>
</Page>

这是我的.cs

using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Net.Http;
using System.Runtime.InteropServices.WindowsRuntime;
using Windows.Data.Json;
using Windows.Foundation;
using Windows.Foundation.Collections;
using Windows.UI.Xaml;
using Windows.UI.Xaml.Controls;
using Windows.UI.Xaml.Controls.Primitives;
using Windows.UI.Xaml.Data;
using Windows.UI.Xaml.Input;
using Windows.UI.Xaml.Media;
using Windows.UI.Xaml.Navigation;
using Windows.Media.SpeechSynthesis;

// The Blank Page item template is documented at http://go.microsoft.com/fwlink/?LinkId=234238

namespace SunnahForKids
{
    /// <summary>
    /// An empty page that can be used on its own or navigated to within a Frame.
    /// </summary>
    public sealed partial class MainPage : Page
    {
        public MainPage()
        {
            this.InitializeComponent();

       }

        private void Button_Click(object sender, RoutedEventArgs e)
        {
            a.Play();

        }


    }
}

我正在努力奋斗2天需要帮助。我也点了这个链接MediaElement in WinRT / Win8 does not work at all 更新我的驱动程序,但它是最新的。英特尔R(Q35)快速芯片组家族(微软公司WDDM-1.0)中的显示驱动程序请让我离开这里..

1 个答案:

答案 0 :(得分:0)

我尝试了你的代码并且代码有效,所以发生了一些奇怪的事情。我会尝试听取链接中提到的事件(例如,对于寻找代码示例的开发人员,进一步向下)。

检查计算机上的事件日志(Windows =&gt;应用程序),如果您错过了Windows的更新,并检查该mp3是否会播放。

收听MediaFailed事件(建议您在文档中进行操作),看看是否可以在那里获取一些信息。Code from msdn:

private void videoMediaElement_MediaFailed(object sender, ExceptionRoutedEventArgs e)
{
    // Check the event arguments => e

    // get HRESULT from event args 
    string hr = GetHresultFromErrorMessage(e);

    // Handle media failed event appropriately 
}

private string GetHresultFromErrorMessage(ExceptionRoutedEventArgs e)
{
    String hr = String.Empty;
    String token = "HRESULT - ";
    const int hrLength = 10;     // eg "0xFFFFFFFF"

    int tokenPos = e.ErrorMessage.IndexOf(token, StringComparison.Ordinal);
    if (tokenPos != -1)
    {
        hr = e.ErrorMessage.Substring(tokenPos + token.Length, hrLength);
    }

    return hr;
}