Ciclo de vida ao chamar o fragmento para substituir ou abrir novas atividades?

O é um fragmento que exibe o vídeo.

Este fragmento pode

1) abra uma nova atividade no botão clique

2) substitua por outro fragmento chamando

fragmentManager.beginTransaction().replace(R.id.container, f).addToBackStack(tag).commit();

para o 1) caso, eu gostaria de chamarplayer.stopPlayBack() para interromper a reprodução do vídeo

E para o 2) caso, eu gostaria de chamarplayer.stopPlayBack() eplayer.release() terminar o jogador

O problema é: qual evento devo chamar para os casos 1) e 2)? Eu tento usar onPause ou onStop, mas ambos parecem não ter sido acionados.

Como corrigi-lo?

Muito obrigado por ajudar.

Atualizada:

Fragmento de vídeo código

public class Video extends Fragment implements MediaPlayer.OnPreparedListener {
    @Bind(R.id.player) EMVideoView player;
    @Bind(R.id.full_screen) ImageView full_screen;
    Context ctx;
    MyApp app;
    String video_url;
    int intent_code = 5545;
    int pos;

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        View view = inflater.inflate(R.layout.video, container, false);
        ButterKnife.bind(this, view);

        Bundle bundle = this.getArguments();
        video_url = bundle.getString("video_url");
        String id = bundle.getString("id");

        app = (MyApp) getActivity().getApplicationContext();
        app.record_view(id);

        Main m = (Main)getActivity();
        m.toggle_upload_btn(false);

        pos = 0;

        full_screen.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent i = new Intent(getActivity(), VideoFullScreen.class);
                i.putExtra("video_url", video_url);
                i.putExtra("time", (int) player.getCurrentPosition());
                startActivityForResult(i, intent_code); //random intent number
            }
        });

        return view;
    }

    @Override
    public void onPrepared(MediaPlayer mp) {
        player.seekTo(pos);
        player.start();
    }

    @Override
    public void onResume() {
        super.onResume();
        player.setOnPreparedListener(this);
        player.setVideoURI(Uri.parse(video_url));
    }

    @Override
    public void onStop() {
        super.onStop();
        player.stopPlayback();
        //player.release();
    }

    @Override
    public void onActivityResult(int requestCode, int resultCode, Intent data) {
        if (requestCode == intent_code) {
            if(resultCode == Activity.RESULT_OK){
                pos = data.getIntExtra("time", 0);
            }
        }
    }

questionAnswers(1)

yourAnswerToTheQuestion