在wp7中检测插头/拔下耳机

时间:2012-03-14 17:10:58

标签: windows-phone-7

有没有办法检测用户在wp7上插入或拔下耳机的时间?

问题是,当一首歌在后台AudioPlayerAgent上播放并且用户插上电话时会拔掉电话,AudioPlayerAgent的protected override void OnUserAction方法会收到暂停UserAction并暂停音乐。

我需要检测UI线程上的插拔,以便我可以更新GUI以反映暂停状态。

2 个答案:

答案 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的状态。这不是最优雅的解决方案,但它可能是目前唯一的方式。