Android 将Youtube视频嵌入WebView(Appcelerator)不会';t显示(黑屏)

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

我尝试在我的应用程序(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工作正常,因为它显示其他页面。

您可以调用设备默认的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);
});