2017-07-17 17 views
7

पर पृष्ठभूमि प्लेबैक सक्षम करना जब मैं मूवी के दौरान 'होम' दबाता हूं तो मैं पृष्ठभूमि में प्लेबैक रखना चाहता हूं।एंड्रॉइड टीवी

मैं गाइड यहाँ का पालन किया: https://developer.android.com/training/tv/playback/options.html

और निम्नलिखित कोड (जो काम) ने लिखा:

@Override 
public void onPause() { 
    super.onPause(); 
    if (mVideoView.isPlaying()) 
    { 
     // Argument equals true to notify the system that the activity 
     // wishes to be visible behind other translucent activities 
     if (! requestVisibleBehind(true)) { 
      // App-specific method to stop playback and release resources 
      // because call to requestVisibleBehind(true) failed 
      stopPlayback(); 
     } 
    } else { 
     // Argument equals false because the activity is not playing 
     requestVisibleBehind(false); 
    } 
} 

@Override 
public void onVisibleBehindCanceled() { 
    // App-specific method to stop playback and release resources 
    stopPlayback(); 
    super.onVisibleBehindCanceled(); 
} 

मैं कुछ सवाल है। मैंने पाया कि लाइन if (! requestVisibleBehind(true)) पर टिप्पणी करने से परिणाम नतीजे वापस नहीं आते हैं। मैं काफी उलझन में था।

  1. क्या उस लाइन को कुछ बूलियन मूल्य वापस नहीं करना चाहिए? यह पृष्ठभूमि प्लेबैक कैसे सक्षम कर सकता है? डीबगर के साथ, "अगर" सफल है और यह खिलाड़ी को रोकता है। वास्तव में यह सुनिश्चित नहीं है कि क्या हो रहा है और कैसे, तो शायद कोई मुझे समझा सकता है।
  2. अनुरोध VisibleBehind() @deprecated है, इसलिए VVibleBehindCanceled() पर है। क्या कोई विकल्प है? जब मैं क्या इन कार्यों पकड़ गौर करने की कोशिश की, मैं भी अपने आप को जब मैंने पाया (समान requestVisibleBehind के लिए चला जाता है() हैरान कर दिया।

    public void onVisibleBehindCanceled() 
    { 
        throw new RuntimeException("Stub!"); 
    } 
    

एक बिंदु पर, मैं बहुत यकीन है कि पृष्ठभूमि प्लेबैक परिणाम से है था अन्य कार्रवाइयां, लेकिन जब मैंने पहले उल्लिखित कोड खंडित टिप्पणी की है, तो मुझे वांछित परिणाम नहीं मिलते हैं (जो मुझे लगता है कि अगर मैं इसे टिप्पणी नहीं करता हूं)।

+0

मदद की अगर आपके कोड काम कर रहा है क्या आप वास्तव में चाहते हैं –

+1

तुम बाहर टिप्पणी 'अगर अगर (! RequestVisibleBehind (सही))' और उसके संबंधित समापन ब्रेस, तो लाइन 'stopPlayback()' हो जाएगा कहा जाता है (जो प्लेबैक रोकता है) FWIW ... – rogerdpack

+0

यह लिंक आपके लिए उपयोगी हो सकता है: http://corochann.com/android-tv-application-hands-on-tutorial-9-195.html –

उत्तर

2

मुझे नहीं पता कि मैं सही तरीके से समझता हूं कि आप क्या हैं पूछने के लिए। Google के अनुसार requestVisibleBehind(true) एंड्रॉइड ओएस के लिए अनुरोध है कि पृष्ठभूमि में जाने के मामले में इस गतिविधि को खेलना जारी रखना चाहिए, बूलियन इसे फिर से शुरू करना चाहिए एनएस यह है कि यदि आप खेलना जारी रखने के लिए उपलब्ध हैं या नहीं (यह ओएस द्वारा तय किया गया है) पर भरोसा कर सकते हैं। onVisibleBehindCanceled() के संबंध में यह तब कहा जाता है जब ऐप उपयोगकर्ता या ओएस द्वारा समाप्त होता है या जब requestVisibleBehind झूठा लौटाता है और अनिवार्य रूप से यह करता है कि यह आपके ऐप द्वारा उपयोग किए जाने वाले सभी संसाधनों का निपटान करने के लिए 500ms देता है, तो उन 500ms के बाद ओएस आपके नष्ट हो जाएगा उन संसाधनों को मुक्त करने के लिए गतिविधि। तो सारांश में वे वास्तव में आपके ऐप के लिए ज़िम्मेदार हैं जो पृष्ठभूमि पर खेलना जारी रखते हैं। बहिष्कार के बारे में, याद रखें कि एंड्रॉइड ओ पीआईपी का उपयोग करने की क्षमता के साथ आता है, इसलिए शायद इस बदलाव का कारण हो।

आशा है कि यह

+0

धन्यवाद, एंड्रॉइड टीवी पर आप पीआईपी का उपयोग नहीं करना चाहेंगे, लेकिन फिर भी पृष्ठभूमि में पूरा वीडियो प्रदर्शित करें। – Hrk

संबंधित मुद्दे