android - exoplayer 来电后不恢复播放
问题描述
我用 Exoplayer 2 制作了一个应用程序。我面临的问题是,当电话响起并且在来电期间音乐停止播放,但是,在来电完成后,它应该从它离开的地方恢复播放。但它不起作用,我错在哪里?
而且我还希望它在 admob interstitail 视频广告之后恢复,但不知道该怎么做?
播放器服务.java
mAudioManager = (AudioManager) getSystemService(Context.AUDIO_SERVICE);
mAudioManager.requestAudioFocus(onAudioFocusChangeListener, AudioManager.STREAM_MUSIC,
AudioManager.AUDIOFOCUS_GAIN);
componentName = new ComponentName(getPackageName(), MediaButtonIntentReceiver.class.getName());
mAudioManager.registerMediaButtonEventReceiver(componentName);
try {
registerReceiver(onCallIncome, new IntentFilter("android.intent.action.PHONE_STATE"));
registerReceiver(onHeadPhoneDetect, new IntentFilter(AudioManager.ACTION_AUDIO_BECOMING_NOISY));
} catch (Exception e) {
e.printStackTrace();
}
private void stop(Intent intent) {
try {
Setting.isPlayed = false;
exoPlayer.setPlayWhenReady(false);
changePlayPause(false);
exoPlayer.stop();
exoPlayer.release();
exoPlayer = null;
try {
mAudioManager.abandonAudioFocus(onAudioFocusChangeListener);
mAudioManager.unregisterMediaButtonEventReceiver(componentName);
unregisterReceiver(onCallIncome);
unregisterReceiver(onHeadPhoneDetect);
} catch (Exception e) {
e.printStackTrace();
}
stopService(intent);
stopForeground(true);
} catch (Exception e) {
e.printStackTrace();
}
}
BroadcastReceiver onCallIncome = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
String a = intent.getStringExtra(TelephonyManager.EXTRA_STATE);
try {
if (exoPlayer.getPlayWhenReady()) {
assert a != null;
if (a.equals(TelephonyManager.EXTRA_STATE_OFFHOOK) || a.equals(TelephonyManager.EXTRA_STATE_RINGING)) {
exoPlayer.setPlayWhenReady(false);
}
else exoPlayer.setPlayWhenReady(true);
}
} catch (Exception e) {
e.printStackTrace();
}
}
};
BroadcastReceiver onHeadPhoneDetect = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
try {
if (exoPlayer.getPlayWhenReady()) {
togglePlay();
}
} catch (Exception e) {
e.printStackTrace();
}
}
};
解决方案
推荐阅读
- javascript - Python Pillow 库对 localhost 不可见
- ruby-on-rails - 如何使用 nokogiri 抓取多个页面以及如何使用 rails 快速抓取
- python - Python:在它被杀死之前获取最后一个输出
- java - 使用休眠和 JPA 保存对象
- java - 启用 proguard 和 minifyEnabled=true 后 Multidex 不起作用
- javascript - Cloud Firestore:使用 Javascript 检索动态字段键
- android - 如何在 android 中通过短信发送我的位置坐标?
- android - 如何使用具有相同 Fragment 的 4 个简单 ViewModel?
- office-ui-fabric - 如何在 Office UI Fabric React 中使用备用图标
- excel - 无法使用 vba excel 播放 midi 文件