我尝试在我的应用程序(Appcelerator,Android)中显示YT视频。我发现最好的方法是在WebView中显示嵌入的视频,所以我使用这样的代码来实现:
var webView = Ti.UI.createWebView({
url: 'https://www.youtube.com/embed/LTRfmqc0KBg',
enableZoomControls: false,
scalesPageToFit: true,
scrollsToTop: false,
showScrollbars: false
});
但视频无法加载(我只看到黑屏 - 而不是webview'白色)。 WebView正常工作,因为它显示其他页面。
答案 0 :(得分:2)
然后你可以试试这个
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();
答案 1 :(得分:0)
您可以调用设备默认的youtube应用来打开用户的网址。请参阅以下代码
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();
感谢。
答案 2 :(得分:0)
我发现嵌入式视频无法在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);
抬头,iframe可能会很痛苦,在加载事件中添加它以摆脱顶部和底部的白色衬垫。左侧
<强> this.evalJS( 'document.getElementsByTagName( “正文”)[0] .style.margin = 0;'); 强>
这样的事情:
$.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);
});