gpt4 book ai didi

windows-8 - 无法在 Windows 8 中播放声音

转载 作者:行者123 更新时间:2023-12-02 23:59:44 25 4
gpt4 key购买 nike

我想在 Windows 8 Metro 风格应用程序中播放 mp3 文件中的声音。我尝试了两种方法:

方法一:
这是使用 https://stackoverflow.com/a/10961201/147530 提供的代码。它有效。

方法二:
在这里,我只是新建一个 MediaElement 并设置其 Source 属性,如下所示:

var x = new MediaElement { Source = new Uri("ms-appx:/Assets/MyMp3File.mp3") };  

当我执行x.Play()时,什么也没有发生。没有抛出异常。

问题:如何使方法 2 起作用?

编辑:想要更新,使用方法 2 不会调用任何 MediaFailed、MediaOpened、MediaEnded 事件处理程序。

sound = new MediaElement { Source = new Uri("ms-appx:/Assets/Clook.mp3") };
sound.MediaFailed += sound_MediaFailed;
sound.MediaOpened += sound_MediaOpened;
sound.MediaEnded += sound_MediaEnded;

static void sound_MediaEnded(object sender, RoutedEventArgs e)
{
Debugger.Break();
}

static void sound_MediaOpened(object sender, RoutedEventArgs e)
{
Debugger.Break();
}

static void sound_MediaFailed(object sender, ExceptionRoutedEventArgs e)
{
Debugger.Break();
}

最佳答案

有几件事需要尝试。尝试以下代码

var music = new MediaElement()
{
AudioCategory = AudioCategory.ForegroundOnlyMedia,
Source = new Uri(this.BaseUri, "Assets/MyMp3File.mp3")
};

// This is really the only difference, adding it to the visual tree
// LayoutRoot is the root of the visual tree, in the case, a grid in my XAML
LayoutRoot.Children.Add(music);

music.Play();

将其添加到可视化树中可能是关键。在其上放置一个断点以确保您的 MediaElement 中有数据。

第二(实际上发生在我身上,这就是我提到它的原因),我正在//Build 的具有扩展坞的三星设备上进行开发。当设备位于扩展坞中时,设备上的音频插孔和扬声器将被禁用。您必须将耳机直接插入扩展坞或将其从扩展坞中取出才能听到任何声音。

关于windows-8 - 无法在 Windows 8 中播放声音,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10984038/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com