यह एक यूट्यूब बग प्रतीत होता है, मैंने एकत्र किए गए विवरणों के लिए YouTubeAndroidPlayerAPI can't play some videos देखें।
इस समय एकमात्र पास करने योग्य कार्यवाही यूट्यूब आधिकारिक ऐप में वीडियो को एक इरादे से खोलने या वेबव्यू के साथ खिलाड़ी के टुकड़े को प्रतिस्थापित करने के लिए प्रतीत होता है। मैंने यह दूसरा समाधान पसंद किया।
मानक वेबव्यू बहुत सीमित है और वीडियो को पूर्णस्क्रीन लाने के लिए बटन नहीं दिखाएगा। WebView में वीडियो
WebView myWebView = (WebView)findViewById(R.id.webview);
MyWebChromeClient mWebChromeClient = new MyWebChromeClient();
myWebView.setWebChromeClient(mWebChromeClient);
myWebView.setWebViewClient(new WebViewClient(){
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
return false;
}
});
WebSettings webSettings = myWebView.getSettings();
webSettings.setJavaScriptEnabled(true);
अंत में, लोड:
myWebView.loadUrl("https://www.youtube.com/embed/"+youtube_id);
यदि आप चाहते हैं करने के लिए
public class MyWebChromeClient extends WebChromeClient {
FrameLayout.LayoutParams LayoutParameters = new FrameLayout.LayoutParams(FrameLayout.LayoutParams.MATCH_PARENT, FrameLayout.LayoutParams.MATCH_PARENT);
@Override
public void onShowCustomView(View view, CustomViewCallback callback) {
if (mCustomView != null) {
callback.onCustomViewHidden();
return;
}
mContentView = (LinearLayout) findViewById(R.id.scheda_video_activity);
mContentView.setVisibility(View.GONE);
mCustomViewContainer = new FrameLayout(SchedaVideoActivity.this);
mCustomViewContainer.setLayoutParams(LayoutParameters);
mCustomViewContainer.setBackgroundResource(android.R.color.black);
view.setLayoutParams(LayoutParameters);
mCustomViewContainer.addView(view);
mCustomView = view;
mCustomViewCallback = callback;
mCustomViewContainer.setVisibility(View.VISIBLE);
setContentView(mCustomViewContainer);
}
@Override
public void onHideCustomView() {
if (mCustomView == null) {
return;
} else {
mCustomView.setVisibility(View.GONE);
mCustomViewContainer.removeView(mCustomView);
mCustomView = null;
mCustomViewContainer.setVisibility(View.GONE);
mCustomViewCallback.onCustomViewHidden();
mContentView.setVisibility(View.VISIBLE);
setContentView(mContentView);
}
}
}
और फिर WebView प्रारंभ: आप एक वर्ग है कि WebChromeClient विस्तार बनाने की जरूरत YouTube प्लेयर में वेबव्यू आयामों को अनुकूलित करें, आप यह कर सकते हैं:
Point size = new Point();
getWindowManager().getDefaultDisplay().getSize(size);
myWebView.setLayoutParams(new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, (int)Math.round(size.x/1.77)));
क्या यह किसी भी डिवाइस पर काम कर रहा है? –
@ विवेक मिश्रा: गैलेक्सी एस 4, 5.0.1, 11.10.60 - नहीं एचटीसी वन एम 8, 6.0, 11.10.60 - नहीं एचटीसी डिजायर 610, 4.4.2, 11.13.56 - नहीं। मैंने नहीं किया अभी तक एक पाया –
मैंने नमूना कोड भी आजमाया और यह निश्चित रूप से आपके द्वारा प्रदान की गई वीडियो आईडी के साथ काम नहीं करता है लेकिन यह आपके द्वारा चुनी गई कई यादृच्छिक वीडियो आईडी के साथ काम कर रहा है और यह ठीक काम कर रहा है। मुझे लगता है कि यह सुलभता मुद्दे से संबंधित हो सकता है –