6

मैंने एक ई-रीडर लागू किया जिस पर वीडियो प्लेयर एम्बेड किए गए हैं, मुझे प्लेयर से पूर्णस्क्रीन मोड टॉगल करने का विकल्प चाहिए।वीडियो व्यू और फुलस्क्रीन और अभिविन्यास परिवर्तन - एंड्रॉइड

मेरा प्रश्न है निम्नलिखित:

कौन सा सबसे अच्छा तरीका है वीडियो की वर्तमान समय फुलस्क्रीन पर एक वीडियो खेलते हैं और उपयोगकर्ता पेज वह पहले पढ़ रही है करने के लिए इस राज्य से वापस आने के लिए करते हैं और यह भी रखना है ।

एक और जटिल स्थिति मैं संभाल करने की जरूरत है:

वहाँ, चित्र और परिदृश्य पर एक पृष्ठ के विभिन्न दृश्यावलोकन है चित्र पर उपयोगकर्ता टॉगल फुलस्क्रीन और डिवाइस बारी बारी से अगर, वीडियो लैंडस्केप मोड के पास जाकर rescale चाहिए स्क्रीन को फिट करने के लिए वीडियो, लेकिन यदि उपयोगकर्ता इस पृष्ठ से वापस चला जाता है तो उसे एक बार फिर पोर्ट्रेट पर वापस जाना चाहिए।

यदि आवश्यक हो तो मैं अधिक जानकारी देने में सक्षम हूं। अग्रिम धन्यवाद

उत्तर

9

मैं लेआउट में VideoView के साथ Activity का उपयोग करने की सलाह दे सकता हूं।

आप इस

@Override 
protected void onSaveInstanceState(Bundle outState) { 
    super.onSaveInstanceState(outState); 
    if (mVideoView.isPlaying()) outState.putInt("pos", mVideoView.getCurrentPosition()); 
} 

तरह उन्मुखीकरण परिवर्तन पर स्थिति को बचा सकता है तो फिर स्थिति को बहाल करने और

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.video); 

    mVideoView = (VideoView) findViewById(R.id.video); 
    MediaController mediaController = new MediaController(this); 
    mediaController.setAnchorView(mVideoView); 
    mVideoView.setMediaController(mediaController); 
    mVideoView.setOnCompletionListener(this); 

    Intent intent = getIntent(); 
    path = intent.getExtras().getString("path"); 

    int pos = 0; 
    if (savedInstanceState != null) { 
     pos = savedInstanceState.getInt("pos"); 
    } 

    playVideoFromPos(pos); 
} 
+1

असल onCreate विधि में खेल को फिर से शुरू, सबसे बड़ी समस्या यह पेज से पुराने videoview हटाने के बारे में है और इसे राज्य लगातार गंदे अभिविन्यास परिवर्तन रखें। (पृष्ठभूमि गतिविधि को फिर से बनाएं) –

+0

ठीक है हमें mVideoView.getCurrentPosition() मिला है ताकि इस मान पर videoview पर सेट किया जा सके। और मुख्य मुद्दा यह है कि कितना वीडियो खेला गया है और – Sameer

+1

'mVideoView.getCurrentPosition()' आपको 'समय देता है कि कितना वीडियो खेला गया है और आप इसे' आउटस्टेट 'में सहेजते हैं। फिर 'ऑनक्रेट' में आप जांचते हैं कि 'savedInstanceState' में यह सहेजा गया समय है या नहीं। विधि 'playVideoFromPos (int pos)' में आप 'mVideoView.seekTo (pos);' और 'mVideoView.start();' कॉल कर सकते हैं। वह वही करेगा जो आपको चाहिए। – vasart