我希望我的音乐播放器在耳机断开连接时暂停音乐,并在重新连接耳机时恢复音乐。我将此设置为使用广播式接收器,但问题是我在断开耳机连接后,瞬间就能听到扬声器播放的音乐。就像我的接收器不能足够快地接收到广泛的演员?到底怎么回事?
在这里,我在主activity类的onCreate方法中注册了接收器
MusicIntentReceiver receiver = new MusicIntentReceiver();
registerReceiver(receiver, new IntentFilter(Intent.ACTION_HEADSET_PLUG));下面是我的意图接收器类
public class MusicIntentReceiver extends android.content.BroadcastReceiver {
@Override
public void onReceive(Context ctx, Intent intent) {
if (intent.getAction().equals(android.media.AudioManager.ACTION_HEADSET_PLUG)) {
if(intent.getIntExtra("state",0)==0){ // 0 for unplugged (if it becomes unplugged)
//Pause music
}
if(intent.getIntExtra("state",0)==1){ // 1 for plugged (if it becomes plugged)
//Resume music
}
}
}
}发布于 2016-11-12 01:52:59
尝试暂停AudioManager.ACTION_AUDIO_BECOMING_NOISY上的音乐-它出现在AudioManager.ACTION_HEADSET_PLUG之前(大约大约1秒)。类似于:
IntentFilter filter = new IntentFilter();
filter.addAction(AudioManager.ACTION_HEADSET_PLUG);
filter.addAction(AudioManager.ACTION_AUDIO_BECOMING_NOISY);
registerReceiver(receiverHeadset, filter);..。
public class MusicIntentReceiver extends android.content.BroadcastReceiver {
@Override
public void onReceive(Context ctx, Intent intent) {
if (intent.getAction().equals(AudioManager.ACTION_AUDIO_BECOMING_NOISY)) {
// Pause music
} else if (intent.getAction().equals(android.media.AudioManager.ACTION_HEADSET_PLUG)) {
if(intent.getIntExtra("state",0)==1){ // 1 for plugged (if it becomes plugged)
//Resume music
}
}
}
}https://stackoverflow.com/questions/34689079
复制相似问题