Я воспроизвожу видео и пытаюсь приостановить его при удалении гарнитуры. Но, к сожалению, есть временная задержка около 1-2 секунд, после чего музыка/видео останавливается. Тот же кусок кода отлично работает, когда я использую его для музыкального проигрывателя, но не для видеопроигрывателя. Может ли кто-нибудь помочь?Задержка при паузе видео на удалении гарнитуры
активность:
@Override
protected void onCreate(Bundle savedInstanceState) {
// Register headset receiver
registerReceiver(headsetReceiver,
new IntentFilter(Intent.ACTION_HEADSET_PLUG));}
// If headset gets unplugged, stop music and service.
private final BroadcastReceiver headsetReceiver = new BroadcastReceiver() {
private boolean headsetConnected = false;
@Override
public void onReceive(Context context, Intent intent) {
// Log.v("TAG", "ACTION_HEADSET_PLUG Intent received");
if (intent.hasExtra("state")) {
if (headsetConnected && intent.getIntExtra("state", 0) == 0) {
headsetConnected = false;
headsetSwitch = 0;
} else if (!headsetConnected
&& intent.getIntExtra("state", 0) == 1) {
headsetConnected = true;
headsetSwitch = 1;
}
}
switch (headsetSwitch) {
case (0):
headsetDisconnected();
break;
case (1):
break;
default:
break;
}
}
};
private void headsetDisconnected() {
if(videoInterface!=null)
videoInterface.stopVideo();
}
Фрагмент:
public class VideoPlayerFragment extends Fragment implements VideoInterface
{
@Override
public void onAttach(Activity activity) {
super.onAttach(activity);
((VideoPlayer)getActivity()).videoInterface = this;
}
@Override
public void stopVideo() { // interface method
if (mediaPlayer != null && mediaPlayer.isPlaying())
mediaPlayer.pause();
}
Зачем перематывать назад, когда мне просто нужно сделать паузу? Там должно быть лучшее решение. – RisingUp
Это может быть просто медленное время отклика (отставание). Я не мог думать ни о чем другом. – n1ckname152
Его не только о времени в одиночку. Если пользователь удаляет гарнитуру, музыка должна немедленно прекратиться. Ваше решение не остановит музыку от игры. – RisingUp