Это фрагмент, отображающий видео.Lifecycle при вызове фрагмента заменить или открыть новую активность?
Этот фрагмент может либо
1) открыть новый вид деятельности на кнопку мыши
2) заменить с другим фрагментом, вызвав
fragmentManager.beginTransaction().replace(R.id.container, f).addToBackStack(tag).commit();
для) случая 1, я хотел бы звоните player.stopPlayBack()
, чтобы остановить воспроизведение видео при поддержке
И для 2) случая, я хотел бы позвонить player.stopPlayBack()
и player.release()
прекратить проигрыватель
Проблема в том, какое событие я должен назвать для случая 1) и 2)? Я пытаюсь использовать onPause или onStop, но оба они, похоже, не стреляли.
Как это исправить?
Большое спасибо за помощь.
Обновлено:
видео фрагмент код
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);
}
}
}
Есть две кнопки, одна для корпуса 1 и одна для корпуса 2? Почему бы не обрабатывать ваши разные случаи в их соответствующих onClickListeners, если так? –
просто читает документ и имеет некоторую идею, является onpause для 1) случая и onDetach для 2) случая? – user3538235