Android 将Youtube视频嵌入WebView(Appcelerator)不会';t显示(黑屏)
我尝试在我的应用程序(Appcelerator,Android)中显示YT视频。我发现最好的方法是在WebView中显示嵌入式视频,所以我使用以下代码:Android 将Youtube视频嵌入WebView(Appcelerator)不会';t显示(黑屏),android,video,webview,youtube,appcelerator,Android,Video,Webview,Youtube,Appcelerator,我尝试在我的应用程序(Appcelerator,Android)中显示YT视频。我发现最好的方法是在WebView中显示嵌入式视频,所以我使用以下代码: var webView = Ti.UI.createWebView({ url: 'https://www.youtube.com/embed/LTRfmqc0KBg', enableZoomControls: false, scalesPageToFit: true, scrollsToTop: false, s
var webView = Ti.UI.createWebView({
url: 'https://www.youtube.com/embed/LTRfmqc0KBg',
enableZoomControls: false,
scalesPageToFit: true,
scrollsToTop: false,
showScrollbars: false
});
但视频不会加载(我只看到黑屏,而不是webview的白色)。WebView工作正常,因为它显示其他页面。您可以调用设备默认的youtube应用程序为用户打开url。请参阅下面的代码
var Win = Titanium.UI.createWindow({
title : 'Youtube Video View Demo',
backgroundColor : '#fff'
});
var button = Titanium.UI.createButton({
title: 'Hello',
top: 10,
width: 100,
height: 50
});
button.addEventListener('click',function(e)
{
Titanium.Platform.openURL('https://www.youtube.com/watch?v=bSiDLCf5u3s');
});
Win.add(button);
Win.open();
谢谢。那么你可以试试这个
var Win = Titanium.UI.createWindow({
title : 'Video View Demo',
backgroundColor : '#fff'
});
var video_url = 'https://www.youtube.com/watch?v=bSiDLCf5u3s';
var movie = '<html><head></head><body style="margin:0"><embed id="yt" src="' + video_url + '" type="application/x-shockwave-flash" width="480" height="266"></embed></body></html>';
var webView = Ti.UI.createWebView({
top:0,
left:0,
width:480,
height:266,
url:video_url,
html:movie
});
Win.add(webView);
Win.open();
var Win=tianium.UI.createWindow({
标题:“视频视图演示”,
背景颜色:“#fff”
});
var视频https://www.youtube.com/watch?v=bSiDLCf5u3s';
var电影=“”;
var webView=Ti.UI.createWebView({
排名:0,
左:0,,
宽度:480,
身高:266,
url:video_url,
html:电影
});
Win.add(webView);
Win.open();
我发现嵌入式视频在Android上无法运行,而在iOS上运行良好。
但是,将使用webviews url属性加载视频的表单切换为使用setHtml()函数是可行的。实现这一点的方法是使用Youtube iframe api
var videoUrl = 'https://www.youtube.com/embed/' + videoId + '? autoplay=1&autohide=1&cc_load_policy=0&color=white&controls=0&fs=0&iv_load_policy=3&modestbranding=1&rel=0&showinfo=0';
var playerWidth = $.youtubeWebView.width;
var playerHeight = $.youtubeWebView.height;
var html = '<iframe id="player" type="text/html" width="'+playerWidth+'" height="'+playerHeight+'" src="'+videoUrl+'" frameborder="0"></iframe>';
$.youtubeWebView.setHtml(html);
谢谢Sharif,但它会在浏览器/YT应用程序中打开视频。我想在应用程序内部显示视频,而不是在外部…我们发现这种方法存在许多问题,最终放弃了它。我们继续使用Appcelerator自带的视频播放器。我想您可能会发现您使用的URL不正确。虽然您在自己观看视频时会使用它,但它不适合嵌入到应用程序中。我们最终使用Youtube api获取嵌入Youtube的视频的原始url。最终我们放弃了这个,因为我们不希望Youtube贴在上面的广告内容。那么你的答案是什么,因为你给我写了一些建议,最后你说所有的建议都错了……嗨!你找到这个问题的答案了吗?当我播放视频时,它说“视频不可用”
$.youtubeWebView.addEventListener('load', function(){
this.evalJS('document.getElementsByTagName("body")[0].style.margin=0;');
var showYoutubeTimer = setTimeout(function() {
$.activityIndicator.hide();
$.youtubeWebView.opacity = 1;
clearTimeout(showYoutubeTimer);
}, 300);
});