我正在开发一种显示音频频谱的音乐播放器。从我发现可以通过使用Bass.dll(音频库)来做到这一点。
但是,大多数样本不支持背景音频播放。我试图在应用程序清单上添加背景音频功能,但它没有改变任何东西。
如何使用第三方音频库以及支持背景音频播放?我做了一些研究,发现在自定义音频播放器中涉及SystemMediaTransportControl可能是一个选项,但我不确定。如果有人能给我一个提示,我将不胜感激
答案 0 :(得分:0)
经过一些研究和实验,我终于找到了解决方案。
基于背景音频的文档,dev应该手动集成已包含在MediaPlayer中的SystemMediaTrnasportControl。
这是引用:
如果您未使用MediaPlayer提供的自动SMTC集成,则必须手动与SMTC集成以启用背景音频。至少,您的应用必须通过将IsPlayEnabled和IsPauseEnabled设置为true来启用播放和暂停按钮。您的应用还必须处理ButtonPressed事件。如果您的应用不符合这些要求,则当您的应用移至后台时,音频播放将停止。
使用新的单进程模型进行背景音频的应用程序应该通过调用GetForCurrentView获取SystemMediaTransportControls的实例。使用传统双进程模型进行背景音频的应用必须使用BackgroundMediaPlayer.Current.SystemMediaTransportControls从后台进程访问SMTC。
简而言之,这是背景音频的两个最小代码
public BassAudioPlayer(CoreDispatcher dispatcher)
{
_dispatcher = dispatcher;
_smtc = SystemMediaTransportControls.GetForCurrentView();
_smtc.ButtonPressed += systemMediaControls_ButtonPressedAsync;
_smtc.IsPlayEnabled = true;
_smtc.IsPauseEnabled = true;
}
private async void systemMediaControls_ButtonPressedAsync(SystemMediaTransportControls sender, SystemMediaTransportControlsButtonPressedEventArgs args)
{
await _dispatcher.RunAsync(CoreDispatcherPriority.Normal, async () =>
{
//Whatever you want to add in
});
}