ダイアログフラグメントでJSONからWebviewへのiframe youtubeリンクデータを解析しています。ビデオ出力に黒い画面が表示され、ビデオのオーディオのみが再生されています。(android:hardwareAccelerated = "true")をマニフェストファイルとプログラムのJavaコードで使用しようとしましたが、うまくいきませんでした。
DialogFragmentの代わりにアクティビティでSameを使用すると、ビデオの出力結果が得られ、すべてが正常に機能しますが、何らかの理由で、Dialog FragmentでのみYouTubeビデオを再生する必要があります。これを行う方法は助けてください、そしてここに以下の私のコードがあります。
public class Activity extends DialogFragment {
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment, container, false);
String frameVideo = "<html><body>Youtube video .. <br> <iframe width="320" height="315" src="https://www.youtube.com/embed/lY2H2ZP56K4" frameborder="0" allowfullscreen></iframe></body></html>";
WebView mwebView = view.findViewById(R.id.webView);
mwebView.setWebChromeClient(new WebChromeClient() {
});
displayVideo.setWebViewClient(new WebViewClient(){
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
return false;
}
});
mwebView.getSettings().setAppCachePath(getActivity().getCacheDir().getAbsolutePath());
mwebView.getSettings().setJavaScriptEnabled(true);
mwebView.getSettings().setAllowFileAccess(true);
mwebView.getSettings().setAppCacheEnabled(true);
// mwebView.setInitialScale(1);
// mwebView.getSettings().setUseWideViewPort(true);
if (android.os.Build.VERSION.SDK_INT < android.os.Build.VERSION_CODES.KITKAT) {
mwebView.getSettings().setPluginState(WebSettings.PluginState.ON);
}
mwebView.getSettings().setLoadWithOverviewMode(true);
mwebView.getSettings().setLayoutAlgorithm(WebSettings.LayoutAlgorithm.SINGLE_COLUMN);
mwebView.setLayerType(View.LAYER_TYPE_SOFTWARE, null);
mwebView.loadData(frameVideo, "text/html", "utf-8");
}
コードを確認しましたが、問題ありません。setLayerType
物件にコメントしてチェックしました。正常に動作しています。コメントするだけmwebView.setLayerType(View.LAYER_TYPE_SOFTWARE, null);
。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加