我需要存储背景音频播放位置,以防另一个应用程序启动并接管背景音频播放器设施。
我在我的音频播放器代理中使用了以下内容
protected override void OnPlayStateChanged(BackgroundAudioPlayer _player, AudioTrack _track, PlayState _playState)
{
System.Diagnostics.Debug.WriteLine(_playState.ToString());
double _pos = -1;
try
{
_pos = _player.Position.TotalSeconds;
}
catch (Exception _ex)
{
System.Diagnostics.Debug.WriteLine(_ex.Message);
}
switch (_playState)
{
// handling of different state changes
}
myStorePositionRoutine(_pos)
NotifyComplete();
}
来自例如缓冲或播放/暂停等事件的其他状态更改似乎工作正常,我能够获取记录的最新位置以供以后使用。
但是,如果以及何时(在调试器中运行我的应用程序时)我启动另一个应用程序来接管手机中的后台音频播放器设施,我可以看到的调试器中的第一个(也是最后一个)事件是播放状态
“停止”
和异常消息
“背景音频资源不再可用。”
我可以做些什么来强制后台音频播放器代理定期保存位置以预期“非正常”关闭 - 或者是否有其他方式/事件可以使用获取和存储停止状态和不可用之前的位置背景音频资源?