Веб-просмотр, который я реализовал, успешно загружает веб-страницу с видео и успешно воспроизводит видео, однако, если я передаю URL, который состоит только из видео с той же веб-страницы, то веб-просмотр ничего не загружает, и действие становится пустым / белый. (URL-адрес видео успешно загружается в браузере) (также пробовал аппаратное ускорение в теге приложения AndroidManifest).
URL-адрес веб-страницы: https://kayifamily.com/payitaht-abdulhamid-episode-1/ URL-адрес видео со страницы: https://ok.ru/videoembed/1065210874429
public class abdulhamidEng extends AppCompatActivity {
private View mCustomView;
private RelativeLayout mContentView;
private FrameLayout mCustomViewContainer;
private WebChromeClient.CustomViewCallback mCustomViewCallback;
Button refreshButton;
private WebView myWebView;
@RequiresApi(api = Build.VERSION_CODES.KITKAT)
@SuppressLint("SetJavaScriptEnabled")
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
setContentView(R.layout.webviewcontent);
refreshButton = findViewById(R.id.refreshButton);
refreshButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
myWebView.reload();
}
});
Objects.requireNonNull(this.getSupportActionBar()).hide();
myWebView = findViewById(R.id.webView);
MyWebChromeClient mWebChromeClient = new MyWebChromeClient();
myWebView.setWebChromeClient(mWebChromeClient);
myWebView.getSettings().setJavaScriptCanOpenWindowsAutomatically(false);
myWebView.setWebViewClient(new WebViewClient(){
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
return false;
}
});
WebSettings webSettings = myWebView.getSettings();
webSettings.setJavaScriptEnabled(true);
String url = "https://kayifamily.com/payitaht-abdulhamid-episode-1/";
myWebView.loadUrl(url);
myWebView.setWebViewClient(new WebViewClient(){
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url){//condition or the code
view.loadUrl(url);
return false;
}
});
}
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 a view already exists then immediately terminate the new one
if (mCustomView != null) {
callback.onCustomViewHidden();
return;
}
mContentView = findViewById(R.id.activity_webView);
mContentView.setVisibility(View.GONE);
mCustomViewContainer = new FrameLayout(abdulhamidEng.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) {
Toast.makeText(getApplicationContext(), "Custom View is Null", Toast.LENGTH_SHORT).show();
} else {
// Hide the custom view.
mCustomView.setVisibility(View.GONE);
// Remove the custom view from its container.
mCustomViewContainer.removeView(mCustomView);
mCustomView = null;
mCustomViewContainer.setVisibility(View.GONE);
mCustomViewCallback.onCustomViewHidden();
// Show the content view.
mContentView.setVisibility(View.VISIBLE);
setContentView(mContentView);
}
}
}
@Override
public void onBackPressed() {
if (myWebView.canGoBack()) {
myWebView.goBack();
} else {
super.onBackPressed();
}
}
}
Logcat:
04-11 21:25:01.662 31194-31194/? E/Zygote: accessInfo : 0
04-11 21:25:05.872 31194-31194/com.mappsbyjk.turkishseries E/MotionRecognitionManager:mSContextService = null
04-11 21:25:05.872 31194-31194/com.mappsbyjk.turkishseries E/MotionRecognitionManager: motionService = com.samsung.android.motion.IMotionRecognitionService$Stub$Proxy@76d74f4
04-11 21:25:09.242 31194-31636/com.mappsbyjk.turkishseries E/libEGL: validate_display:255 error 3008 (EGL_BAD_DISPLAY)
Спасибо.