2012-09-07 17 views
6

मेरे पास एक वेब व्यू है जो एम्बेडेड वीडियो होस्ट करता है। जब मैं वेबव्यू को घटाता हूं तो वीडियो की आवाज़ खेलती रहती है। मैं इसे कैसे रोक सकता हूँ? मैंने webview.destroy(); को आजमाया लेकिन जब मैं वेबव्यू को फिर से खोलने का प्रयास करता हूं तो वह बल एप्लिकेशन बंद कर देता है।पृष्ठभूमि में एम्बेडेड वीडियो नाटकों के साथ वेबव्यू

उत्तर

0

आपका क्या मतलब है: "जब मैं वेबव्यू को घटाता हूं तो वीडियो की आवाज बजती रहती है"।

क्या यह एक कस्टम ऐप है? यदि ऐसा है, तो आपको एंड्रॉइड के साथ अपनी ऐप मेनिफेस्ट फ़ाइल बनाने की आवश्यकता है: हार्डवेयर एक्सेलेरेटेड = सच (मान लीजिए कि आप इसे आईसीएस या जेबी पर कर रहे हैं)। हार्डवेयर त्वरण के बिना आप केवल ऑडियो सुनेंगे लेकिन वीडियो नहीं देखा जा सकता है (जो आप देख रहे हैं जैसा लगता है)। अपनी मेनिफेस्ट फ़ाइल को बदलने पर कुछ जानकारी यहां दी गई है: http://developer.android.com/guide/topics/graphics/hardware-accel.html

4

मुझे लगता है कि जब आप दृश्य बंद करते हैं तो "जब मैं वेबदृश्य को घटाता हूं"। वैसे भी, मैंने एक ही दृष्टिकोण की कोशिश की - webview.destroy() को कॉल करना, और आपके जैसा ही क्रैश था।

काम करने वाला एकमात्र दृष्टिकोण _webView.loadData ("", "text/html", "utf-8") को कॉल करना था; मेरी गतिविधि खत्म() विधि से।

(इस उत्तर के आधार पर: How do I stop Flash after leaving a WebView? जो वास्तव में काम नहीं करता था क्योंकि डेस्ट्रॉय को बाद में नहीं कहा जा रहा था)।

5

आपको उस उद्देश्य के लिए WebView के onPause() और onResume() विधियों को कॉल करना होगा। आप आमतौर पर इसे अपनी गतिविधि के onPause() और onResume() पर करते हैं, लेकिन जब भी आप वेबव्यू को किसी भी तरीके से छुपा रहे हैं तो आप इसे भी कर सकते हैं और इसकी सामग्री भी जो भी कर रही है, उसे रोकना बंद कर दें, जैसे कि जावास्क्रिप्ट चलाना या HTML5 वीडियो चलाएं। WebView.class.getMethod("onPause").invoke(myWebView);

0

तुम भी जावा स्क्रिप्ट को निष्पादित कर सकते हैं गतिविधि के पीछे onPause जीवन चक्र फोन पर वीडियो/ऑडियो को रोकने के लिए, में:

आप पहले 11 करने के लिए एपीआई के स्तर में इन तरीकों की जरूरत है, तो आप प्रतिबिंब इस तरह उपयोग कर सकते हैं उदाहरण के नीचे मैंने इसे ऑडियो के लिए किया है (यह काम करता है)। आशा है कि 'वीडियो' को 'वीडियो' में बदलना आपके लिए चाल है।

@Override 
protected void onPause() { 

    executeJavascript("javascript:document.querySelector('audio').pause();", new ValueCallback() { 
     @Override 
     public void onReceiveValue(Object value) { 
      Trace.d(TAG, value.toString()); 
     } 
    }); 

    super.onPause(); 
} 

और

private void executeJavascript(String javascript, ValueCallback callback){ 
    if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.KITKAT) { 
     mWebView.evaluateJavascript(javascript, callback); 
    } else { 
     mWebView.loadUrl(javascript); 
    } 
} 
संबंधित मुद्दे