我尝试通过XAML中的mediaElement设置背景音频
<MediaElement x:Name="MyAudio" Source="Assets/Sound.mp3" AudioCategory="BackgroundCapableMedia" AutoPlay="False" />
以编程方式
async void setUpAudio()
{
var package = Windows.ApplicationModel.Package.Current;
var installedLocation = package.InstalledLocation;
var storageFile = await installedLocation.GetFileAsync("Assets\\Sound.mp3");
if (storageFile != null)
{
var stream = await storageFile.OpenAsync(Windows.Storage.FileAccessMode.Read);
_soundEffect = new MediaElement();
_soundEffect.AudioCategory = AudioCategory.BackgroundCapableMedia;
_soundEffect.AutoPlay = false;
_soundEffect.SetSource(stream, storageFile.ContentType);
}
}
// and later...
_soundEffect.Play();
但是对我来说都不适用。一旦我最小化应用程序,音乐就会淡出
答案 0 :(得分:0)
最初发现起来并不容易,因为它没有使用音频&#39;在标题中,我没有播放音乐。这是一个非常好的,全面的答案,我喜欢在StackExchange上看到这些答案。它还提到了一些其他类似问题的答案未能指出的事情。简而言之
PlayPressed
,PausePressed
,PlayPausedTogglePressed
和StopPressed
, 。编辑:这些事件是Windows 8 app认证所必需的,请确保它们确实有效。 然而,在实施此解决方案时,我确实遇到了我只能假设的错误。我在UserControl中构建了一个厨房计时器。当它倒计时它会播放一个可选的滴答声,然后在经过时发出嗡嗡声。但是,如果在设置定时器之前关闭了滴答声,则无法播放的嗡嗡声。似乎Windows 8应用程序需要在最小化之前播放声音才能使背景音频正常工作。为了解决这个问题,我创建了一个持续时间为1秒的静音音频文件。无论勾选是打开还是关闭,此文件都会播放。这是一个奇怪的黑客,我希望我能找到一个更好的解决方案,但现在我能想到的一切。