2011-11-29 17 views
7

मैं एंड्रॉइड में वेबव्यू में एचटीएमएल 5 सामग्री से स्ट्रीम किए गए यूट्यूब वीडियो को चलाने में सफल रहा हूं लेकिन अब समस्या यह है कि वीडियो केवल पहली बार खेलता है। उसके बाद VideoView केवल वीडियो फ़ाइल के अंत में चला जाता है।वीडियो एंड्रॉइड के वेबव्यू में केवल एक बार खेलता है

मैंने here सुझाए गए कैश को साफ़ करने का प्रयास किया लेकिन कोई भाग्य नहीं।

इस समस्या के लिए संभावित समाधान क्या हो सकता है?

वीडियो चलाने के लिए कोड का पालन करने का प्रयास करें, यह कुछ पर stackoverflow.com

WebView webView = (WebView) findViewById(R.id.product_details_webview); 
WebSettings webSettings = webView.getSettings(); 
webSettings.setPluginState(WebSettings.PluginState.ON); 
webSettings.setJavaScriptEnabled(true); 
webSettings.setUseWideViewPort(true); 
webSettings.setLoadWithOverviewMode(true); 
webView.setWebChromeClient(new chromeClient()); 
webView.setWebViewClient(new WebViewClient(){ 

}); 
webView.loadUrl(url); 

public class chromeClient extends WebChromeClient implements OnCompletionListener, 
OnErrorListener{ 
    private WebView wv; 
    private VideoView mVideoView; 
    private LinearLayout mContentView; 
    private FrameLayout mCustomViewContainer; 
    private WebChromeClient.CustomViewCallback mCustomViewCallback; 
    FrameLayout.LayoutParams COVER_SCREEN_GRAVITY_CENTER = new 
FrameLayout.LayoutParams(
      ViewGroup.LayoutParams.WRAP_CONTENT, 
      ViewGroup.LayoutParams.WRAP_CONTENT, Gravity.CENTER); 

    @Override 
    public void onShowCustomView(View view, CustomViewCallback callback) { 
     if (view instanceof FrameLayout) { 
      wv = (WebView)findViewById(R.id.product_details_webview); 
      mCustomViewContainer = (FrameLayout) view; 
      mCustomViewCallback = callback; 
      mContentView = (LinearLayout)findViewById(R.id.linearlayout1); 
      if (mCustomViewContainer.getFocusedChild() instanceof VideoView) { 
       mVideoView = (VideoView) mCustomViewContainer.getFocusedChild(); 
       // frame.removeView(video); 
       mContentView.setVisibility(View.GONE); 
       mCustomViewContainer.setVisibility(View.VISIBLE); 
       setContentView(mCustomViewContainer); 
       mVideoView.setOnCompletionListener(this); 
       mVideoView.setOnErrorListener(this); 
       mVideoView.start(); 

      } 
     } 
    } 

    public void onHideCustomView() { 
     if (mVideoView == null){ 
      return; 
     }else{ 
     // Hide the custom view. 
     mVideoView.setVisibility(View.GONE); 
     // Remove the custom view from its container. 
     mCustomViewContainer.removeView(mVideoView); 
     mVideoView = null; 
     mCustomViewContainer.setVisibility(View.GONE); 
     mCustomViewCallback.onCustomViewHidden(); 
     // Show the content view. 
     mContentView.setVisibility(View.VISIBLE); 
     } 
    } 


    public void onCompletion(MediaPlayer mp) { 
     mp.stop(); 
     mCustomViewContainer.setVisibility(View.GONE); 
     onHideCustomView(); 
     setContentView(mContentView); 
    } 

    public boolean onError(MediaPlayer arg0, int arg1, int arg2) { 
     setContentView(mContentView); 
     return true; 
    } 
    } 
+0

बढ़िया, मैं उन वीडियो के लिए धन्यवाद अपना वीडियो खेलने में सक्षम था :) webView.setWebChromeClient (नया WebChromeClient()); webView.setWebViewClient (नया WebViewClient()) – OlivierM

उत्तर

4

अपने क्रोम ग्राहक में जोड़ें:।

 @Override public void onPrepared(MediaPlayer mp) { 

     customViewCallback.onCustomViewHidden(); 
    } 

जहां customViewCallback = कॉलबैक;।

+0

के संबंधित गतिविधि टैग में मैंने एक ही चीज़ को जोड़ा जो मुझे दुर्घटनाग्रस्त हो रहा है कृपया मुझे बताएं कि उस दुर्घटना से कैसे छुटकारा पाना है? क्रैश एचटी के लिए लिंक देखें tp: //stackoverflow.com/questions/14229077/you-tube-playing-only-once – Manju

1

दिए गए सुझाव पर आप वीडियो एचटीएमएल 5 के साथ एक WebView अंदर काम कर गया उपयोग किया गया है? बधाई! मुझे लगता है कि :(

मेरी समस्या मैं HTML में एक स्थान धारक छोड़ने और MediaPlayer वर्ग का उपयोग कर मूल कोड से वीडियो से निपटने के समाप्त हो गया ठीक करने के लिए क्या करने की कोशिश कर रहा में विफल रहा है

+0

क्या आप मुझे बता सकते हैं कि सीधे एंड्रॉइड ब्राउज़र में mp4 फ़ाइल चलाएं क्योंकि मैं खेलने में सक्षम नहीं हूं। मेरे पास मीडियारेकोडर क्लास और सर्वर में स्टोर के साथ रिकॉर्ड फ़ाइल (एमपी 4 फॉर्मेट फ़ाइल) है लेकिन ब्राउज़र –

+0

@ डॉनिक पर खेलने के लिए सफलता प्राप्त नहीं है: क्षमा करें। मुझे आपका प्रश्न समझ में नहीं आया :( – Macarse

+0

मैंने अपडेट किया है। कृपया इसे देखें –

0

मैं भी इस समस्या थी मैं जोड़ने के लिए किया था एक की तलाश (0) लगता है अगले वीडियो की तरह बिल्कुल जहां अंतिम वीडियो छोर से खेला। ईडी। तो मुझे खेलने से पहले वीडियो की शुरुआत में जाना पड़ा।

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