android - वीडियोव्यू रोकना और फिर से शुरू करना




lifecycle android-videoview (4)

OnPause में आप वर्तमान स्थिति प्राप्त कर सकते हैं।

length=mVideoView.getCurrentPosition();

और OnResume () में लंबाई मान का उपयोग करें।

mVideoView.seekTo(length);
mVideoView.start()

अच्छा कर रहा है ।

मैं Android विकास के लिए नया हूँ और मैं एक खेल की प्रोग्रामिंग कर रहा हूँ। मेरे खेल में कट्सेंस हैं जो प्रत्येक स्तर से शुरू होने से पहले खेलते हैं, कट्सेंस जो वीडियोव्यू के माध्यम से किए जाते हैं। मेरी समस्या यह है, कि एक आवेदन विराम पर, कटसेन शुरू होने के बाद फिर से शुरू होता है।

    @Override
public void onPause() {
    super.onPause();
    video.pause();
}
@Override
public void onResume()
{
    super.onResume();
    video.resume();
}

हमारा मुद्दा यह है कि वीडियो वास्तव में फिर से शुरू नहीं होता है जहां से हमने इसे रोका था, लेकिन शुरुआत से।


आप इसका उपयोग कर सकते हैं

@Override
public void onPause() {
    Log.d(TAG, "onPause called");
    super.onPause();
    stopPosition = videoView.getCurrentPosition(); //stopPosition is an int
    videoView.pause();
}
@Override
public void onResume() {
    super.onResume();
    Log.d(TAG, "onResume called");
    videoView.seekTo(stopPosition);
    videoView.start(); //Or use resume() if it doesn't work. I'm not sure
}

मूल पोस्ट


बस onPause के बजाय onSaveInstanseState मेथड का उपयोग करें और onResume के बजाय onRestart का उपयोग करें। यह निश्चित रूप से काम करेगा। चियर्स!


विडियो का उपयोग नहीं करना चाहिए। रोकें (), विडियो.आर्स्यूम (), क्योंकि जब आप इसे कॉल करते हैं, तो बफ़रिंग डेटा खो जाएगा। यही कारण है कि जब भी आप video.resume () कहते हैं, तब BEGINNING पर WHY VideoView खेलते हैं। इसे देखें: VideoView onResume वीडियो का बफर भाग खो देता है

उपाय:

VideoView videoView;
MediaPlayer mp;

videoView.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
            @Override
            public void onPrepared(MediaPlayer mp) {
                this.mp = mp;
            }
        });

public void pause(){
    //NOT videoview.pause(); Needn't save Stop position
    if (mp != null){
       mp.pause();
    }
}

public void resume(){
    //NOT videoview.resume();
    if (mp != null){
       mp.start(); //Video will begin where it stopped
    }   
}