Java Android Studio WebView Youtube视频黑屏

Java Android Studio WebView Youtube视频黑屏,java,android,android-studio,Java,Android,Android Studio,我想在WebView中播放视频,但不知怎么的,视频上出现了黑屏,但我能听到它的声音。如果有人能帮我,我会很高兴的 public class MainActivity extends AppCompatActivity { WebView displayYoutubeVideo; TextView button; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInst

我想在WebView中播放视频,但不知怎么的,视频上出现了黑屏,但我能听到它的声音。如果有人能帮我,我会很高兴的

public class MainActivity extends AppCompatActivity {

WebView displayYoutubeVideo;
TextView button;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    String frameVideo = "<html><body>Video From YouTube<br><iframe 
    width=\"560\" height=\"315\" 
    src=\"https://www.youtube.com/embed/WtO3_tF8niU\" frameborder=\"0\" 
    allowfullscreen></iframe></body></html>";

    WebView displayYoutubeVideo = (WebView) findViewById(R.id.youtube_view);

    displayYoutubeVideo.getSettings().setUserAgentString("Mozilla/5.0 
           (Windows NT 10.0; WOW64; rv:53.0) Gecko/20100101 Firefox/53.0");

    displayYoutubeVideo.setWebViewClient(new WebViewClient() {
        @Override
        public boolean shouldOverrideUrlLoading(WebView view, String url) {
            return false;
        }
    });
    WebSettings webSettings = displayYoutubeVideo.getSettings();
    webSettings.setJavaScriptEnabled(true);
    displayYoutubeVideo.loadData(frameVideo, "text/html", "utf-8");
}
}
public类MainActivity扩展了AppCompatActivity{
网络视图显示YouTubevideo;
文本视图按钮;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
String frameVideo=“来自YouTube的视频
”; WebView displayYoutubeVideo=(WebView)findViewById(R.id.youtube\u视图); displayYoutubeVideo.getSettings().setUserAgentString(“Mozilla/5.0 (WindowsNT10.0;WOW64;rv:53.0)Gecko/20100101 Firefox/53.0); displayYoutubeVideo.setWebViewClient(新WebViewClient()){ @凌驾 公共布尔值shouldOverrideUrlLoading(WebView视图,字符串url){ 返回false; } }); WebSettings WebSettings=displayYoutubeVideo.getSettings(); setJavaScriptEnabled(true); 显示youtubevideo.loadData(框架视频、“文本/html”、“utf-8”); } }
我猜您在清单文件中的活动权限中可能缺少了
android:hardwareAccelerated=“true”
。由于您正在播放flash视频,因此应该能够使WebView flash处于启用状态。这是我遇到的问题,解决方案是添加此权限。

此链接可能会对您有所帮助。您似乎错过了web视图的某些属性


如果您的android:targetSdkVersion低于11,并且必须将webChromeclient设置为您的webview,则必须激活硬件加速

displayYoutubeVideo.setWebChromeClient(new WebChromeClient());
并在清单文件中添加以下行

 <application android:hardwareAccelerated="true" ...>