【问题标题】:Media Player is playing after receiving call?接听电话后正在播放媒体播放器?
【发布时间】:2013-08-09 07:29:15
【问题描述】:

我正在使用此代码来监听电话的状态。当电话到达时,它会暂停媒体播放器,但一旦我接听电话,它就会从监听扬声器(而不是铃声)再次开始播放。我还尝试从case TelephonyManager.CALL_STATE_IDLE: 中删除mediaPlayer.start(),在这种情况下它工作正常,但它不会再次启动(恢复)。有没有可用的标志来做到这一点?

 private final PhoneStateListener phoneListener = new PhoneStateListener() {
@Override
public void onCallStateChanged(int state, String incomingNumber) {
    try {
        switch (state) {
        case TelephonyManager.CALL_STATE_RINGING: 
            Toast.makeText(context, "Call is Coming",Toast.LENGTH_SHORT).show();
            mediaPlayer.pause();
        break;

        case TelephonyManager.CALL_STATE_OFFHOOK: 

        break;

        case TelephonyManager.CALL_STATE_IDLE: 
            mediaPlayer.start();

        break;

        default: 
        }
        } catch (Exception ex) {
            mediaPlayer.release();
        }
    }
};

}

或者有没有其他方法可以做到这一点?

【问题讨论】:

  • 我对 Telephonymanager 不太熟悉,但我建议您使用 Soundpool 而不是 MediaPlayer 以获得更好的性能。
  • 我会在默认情况下放一些东西,以查看您是否正在处理所有情况
  • 这个问题和这个stackoverflow.com/questions/5610464/…类似

标签: android


【解决方案1】:

试试这个:

PhoneStateListener phoneStateListener = new PhoneStateListener() {
    @Override
    public void onCallStateChanged(int state, String incomingNumber) {
        if (state == TelephonyManager.CALL_STATE_RINGING) {
            //Incoming call: Pause music
        } else if(state == TelephonyManager.CALL_STATE_IDLE) {
            //Not in call: Play music
        } else if(state == TelephonyManager.CALL_STATE_OFFHOOK) {
            //A call is dialing, active or on hold
        }
        super.onCallStateChanged(state, incomingNumber);
    }
};
TelephonyManager mgr = (TelephonyManager) getSystemService(TELEPHONY_SERVICE);
if(mgr != null) {
    mgr.listen(phoneStateListener, PhoneStateListener.LISTEN_CALL_STATE);
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-02
    • 1970-01-01
    相关资源
    最近更新 更多