我正在开发一种显示音频频谱的音乐播放器 . 从我发现可以通过使用Bass.dll(音频库)来做到这一点 .
但是,大多数样本不支持背景音频播放 . 我试图在应用程序清单上添加背景音频功能,但它没有改变任何东西 .
如何使用第三方音频库以及支持背景音频播放?我做了一些研究,发现在自定义音频播放器中涉及SystemMediaTransportControl可能是一个选项,但我不确定 . 如果有人能给我一个提示,我将不胜感激
经过一些研究和实验,我终于找到了解决方案 .
根据背景音频的文档,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 }); }
1 回答
经过一些研究和实验,我终于找到了解决方案 .
根据背景音频的文档,dev应手动集成已包含在MediaPlayer中的SystemMediaTrnasportControl .
这是引用:
简而言之,这些是背景音频的两个最小代码