Android WebView YouTube嵌入视频自动播放不起作用 [英] android webview youtube embed video autoplay not working
本文介绍了Android WebView YouTube嵌入视频自动播放不起作用的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我无法自动播放我的视频,请提供帮助.我的SDK版本
i am not able to autoplay my video please help in this. my sdk version
android:minSdkVersion="14"
android:targetSdkVersion="19" />
我试图按照代码中指定的方式放置Java脚本:
i tried to put java script as specifed in code:
public void onPageFinished(WebView view, String url) { webView.loadUrl("javascript:(function() { document.getElementsByTagName('video')[0].play(); })()"); }
});
我也尝试在网址中附加自动播放功能,但不起作用//webView.loadUrl("http://youtube.com/embed/oY2OxMpCUVY?autoplay=1");
i also try to append autoplay in URL but not working
//webView.loadUrl("http://youtube.com/embed/oY2OxMpCUVY?autoplay=1");
我的网络设置`
customViewContainer = (FrameLayout)rootView.findViewById(R.id.customViewContainer);
webView = (WebView) rootView.findViewById(R.id.HelpView_Video);
final GlobleClass globalVariable = (GlobleClass) GlobleClass.getContext();
mWebViewClient = new HelpWebViewClient();
webView.setWebViewClient(mWebViewClient);
mWebChromeClient = new myWebChromeClient();
webView.setWebChromeClient(mWebChromeClient);
webView.getSettings().setJavaScriptEnabled(true);
webView.getSettings().setPluginState(PluginState.ON);
webView.setWebViewClient(new WebViewClient() {
// autoplay when finished loading via javascript injection
public void onPageFinished(WebView view, String url) { webView.loadUrl("javascript:(function() { document.getElementsByTagName('video')[0].play(); })()"); }
});
// if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1) {
// webView.getSettings().setMediaPlaybackRequiresUserGesture(false);
// }
webView.getSettings().setAppCacheEnabled(true);
//webView.getSettings().setBuiltInZoomControls(true);
// webView.getSettings().setSaveFormData(true);
//webView.loadUrl("http://youtube.com/embed/oY2OxMpCUVY?autoplay=1");
webView.loadUrl(globalVariable.getHelpVideoUrl());
`
推荐答案
首先在下面的代码中使用:
First used below code :
webSettings.setMediaPlaybackRequiresUserGesture(false);
之后,使用以下方法进行加载:
After that used below method for loading:
webView.loadDataWithBaseURL("https://www.youtube.com/", HTML.replace("CUSTOM_ID","YOUR_YOUTUBE_VIDEO_ID"), "text/html", "utf-8", null);
在HTML字符串中,在带有YouTube API的代码下面传递(替换为您的YouTube视频ID)
In HTML string pass below Code with YouTube API (Replaced your YouTube video ID)
<!DOCTYPE html>
<html>
<style type="text/css">
html, body {
height: 100%;
width: 100%;
margin: 0;
padding: 0;
background-color: #000000;
overflow: hidden;
position: fixed;
}
</style>
<body>
<div id="player"></div>
<script>
var tag = document.createElement('script');
tag.src = "https://www.youtube.com/player_api";
var firstScriptTag = document.getElementsByTagName('script')[0];
firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);
var player;
function onYouTubePlayerAPIReady() {
player = new YT.Player('player', {
height: '100%',
width: '100%',
videoId: 'CUSTOM_ID',
events: {
'onReady': onPlayerReady,
'onStateChange': onPlayerStateChange
},
playerVars: {
'autoplay': 0,
'showinfo': 1,
'controls': 1
}
});
}
function onPlayerReady(event) {
event.target.playVideo();
}
var done = false;
function onPlayerStateChange(event) {
if (event.data == YT.PlayerState.PLAYING && !done) {
done = true;
}
}
function stopVideo() {
player.stopVideo();
}
</script>
</body>
</html>
这篇关于Android WebView YouTube嵌入视频自动播放不起作用的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文