有没有办法检测用户在wp7上插入或拔下耳机的时间?
问题是,当一首歌在后台AudioPlayerAgent上播放并且用户插上电话时会拔掉电话,AudioPlayerAgent的protected override void OnUserAction
方法会收到暂停UserAction并暂停音乐。
我需要检测UI线程上的插拔,以便我可以更新GUI以反映暂停状态。
答案 0 :(得分:1)
您需要在页面中订阅BackgroundAudioPlayer的PlayStateChanged事件:
public void MainPage()
{
InitializeComponent();
BackgroundAudioPlayer.Instance.PlayStateChanged += InstanceOnPlayStateChanged;
}
private void InstanceOnPlayStateChanged(object sender, EventArgs eventArgs)
{
// Update UI
}
答案 1 :(得分:0)
我不相信目前有任何API可以查询头戴式耳机的当前状态。
您可以使用Media元素破解问题的解决方案。每当拔下耳机时,Media元素都会引发CurrentStateChanged事件,因此您可以连接此事件以更改GUI的状态。这不是最优雅的解决方案,但它可能是目前唯一的方式。