标签: youtube-javascript-api

以编程方式创建一个javascript函数

需要这个用于youtube api // onStateChange回调函数!

我想以编程方式创建将听取几个youtube播放器发出的"onStateChange"事件的函数.添加侦听器已经起作用:

function onYouTubePlayerReady(playerId) {
  var ytpStateManager = playerId +"_StateManager";
  document.getElementById(playerId).addEventListener("onStateChange", ytpStateManager );
...
Run Code Online (Sandbox Code Playgroud)

我需要根据playerId变量("ytp_1","ytp_2",...)创建的函数是

function ytpStateManager(newState) {
  ytpStateHelper(playerId , newState);
}
Run Code Online (Sandbox Code Playgroud)

所以playerId"ytp_1"的结果如下所示:

function ytp_1_StateManager(newState) {
  ytpStateHelper("ytp_1", newState);
}
Run Code Online (Sandbox Code Playgroud)

也工作但是现在我需要为每个玩家手动添加它们,这不是我需要的.我想在新玩家发送readyState事件时自动创建它们.

我的问题是,似乎这些函数需要是一个全局函数才能正常工作.我现在几天尝试了几种选择.我的问题是我不知道如何(如果有办法)定义一个全局函数,包括.功能名称,以编程方式,基于另一个变量.

令人失望的是,ytp不会发出包含状态和玩家/目标的事件.会让事情变得更容易.所有这些基本上都是解决方法,因为我需要所有的stateChanges做所有事情.

如果有更好/更简单的方法,请告诉我:)否则非常欢迎这个问题的解决方案.

也许有办法重新举办活动,让它更"易于接近"?

我在规范中读到.addEventListener也接受一个对象,所以我试图将事件绑定到一个专用对象.但同样,它没有被触发.感觉像我测试了一切......

更新 我现在切换到iframe播放器(来自swfobject),因为那个提供了一个包含playerId和state的事件:D Yeahhh !! 在错误的ytplayer度过了一周之后,这感觉就像是一次伟大的进步.似乎也希望我们使用iframe播放器,它可以在支持时动态使用html5.

javascript youtube youtube-api youtube-javascript-api

6
推荐指数
1
解决办法
2983
查看次数

UIWebView youtube iframe api autoplay/playsinline quit在iOS7中工作

这段代码非常适合在iOS 6 uiwebview中自动播放视频内联.但是,我升级到iOS 7,现在我的视频无法自动播放.有时视频会自动播放,有时则不会.它会在大约10%的时间内自动播放.大多数时候我都会得到一个纺车.如果我从src标签中删除&playsinline = 1,它将自动播放全屏(不是我想要的).我花了很多时间为这个应用程序创建一个自定义播放器,现在它将无法正常工作.任何帮助是极大的赞赏.

_youTubeWebView = [[UIWebView alloc] initWithFrame:CGRectMake(0, 20, 320, 184)];
_youTubeWebView.delegate = self;
_youTubeWebView.scrollView.bounces = NO;
_youTubeWebView.allowsInlineMediaPlayback = YES;
_youTubeWebView.mediaPlaybackAllowsAirPlay = YES;
_youTubeWebView.mediaPlaybackRequiresUserAction = NO;
[self.view addSubview:_youTubeWebView];

 NSString* embedHTML = [NSString stringWithFormat:@"<html><body style='margin:0px;padding:0px;'><script type='text/javascript' src='http://www.youtube.com/iframe_api'></script><script type='text/javascript'>function onYouTubeIframeAPIReady(){ytplayer=new YT.Player('playerId',{events:{onReady:onPlayerReady}})}function onPlayerReady(a){ a.target.playVideo(); }</script><iframe id='playerId' type='text/html' width='%@' height='%@'src='http://www.youtube.com/embed/%@?enablejsapi=1&rel=0&playsinline=1&controls=0&showinfo=0' frameborder='0'></body></html>", w, h, videoId];
 [_youTubeWebView loadHTMLString:embedHTML baseURL:nil];
Run Code Online (Sandbox Code Playgroud)

这是一个快速测试文件的链接.videoPlayerTest.zip

objective-c youtube-api uiwebview ios youtube-javascript-api

6
推荐指数
1
解决办法
5595
查看次数

改善YouTube缩略图质量?

当通过iFrame代码嵌入网页时,YouTube缩略图显得很糟糕.一旦视频开始播放,质量看起来绝对正常.

这是一个示例视频:http: //jsfiddle.net/x5829/

播放前 - 质量不佳的缩略图 YouTube嵌入式iFrame质量不佳缩略图

在玩耍时 - 质量好 YouTube嵌入式iFrame质量好

无论出于何种原因,它似乎使用的是hqdefault.jpg质量图像,而不是maxresdefault.jpg,它的质量要高得多.

我已经尝试将iFrame维度增加到1280x720甚至更高,似乎没有任何区别.

是否可以使用JavaScript API完成任何操作以强制使用缩略图质量?我们使用的所有视频都是720p,保证.

最后一点(我认为这不重要),我们使用YouTube API(V3)上传视频,然后通过API设置缩略图.但是,使用YouTube选择的自动生成的缩略图时会发生同样的事情.

编辑 -我想知道这是否会随着时间的推移而改善,想想也许YouTube会在24小时内对其进行优化,但几天之后它仍然是相同的.

编辑2 -据我所知,iFrame仍然是谷歌在网站上嵌入视频的"推荐"方法,因此它们也适用于移动设备.

youtube iframe thumbnails youtube-api youtube-javascript-api

6
推荐指数
1
解决办法
9800
查看次数

在暂停缓冲后,youtube播放器再次开始时是否有js回调?

我想弄清楚玩家什么时候不再缓冲回调.

我现在正在使用 onPlayerBuffering: function(){};当玩家开始缓冲时,但我似乎找不到任何相反的东西.

onPlayerPlaying: function(){};一旦玩家缓冲,这似乎不起作用.

有谁知道这是否可能?

另外,我正在使用 Nirvana Tikku的jquery-youtube插件,这里这里的回调列表......这些都不能完成这项工作吗?

谢谢!!

youtube jquery youtube-api youtube-javascript-api

5
推荐指数
1
解决办法
2269
查看次数

Youtube不安全JavaScript尝试使用URL访问框架

这里我有另一个问题,这次关于youtube API.我正在使用此代码来获取youtube播放器:

<div id=\"youtubeVideoContainer\"></div><script type=\"text/javascript\">
                        //Load player api asynchronously.
                        var tag = document.createElement('script');
                        tag.src = \"//www.youtube.com/player_api\";
                        var firstScriptTag = document.getElementsByTagName('script')[0];
                        firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);

                        var player;
                        function onYouTubePlayerAPIReady() {
                            player = new YT.Player('youtubeVideoContainer', {
                              height        : \"".$height."\",
                              width         : \"".$width."\",
                              videoId       : \"".$id."\",
                              playerVars    : ".json_encode($this->playerParams)."
                            });
                        }
                    </script>
Run Code Online (Sandbox Code Playgroud)

请不要介意\",它是用PHP呈现的,所以它只是为了转义,视频也在播放,所以没有重大错误:)

令我烦恼的是,每当我请求视频时,我都会在我的控制台中看到此消息:不安全的JavaScript尝试使用URL访问框架

https://www.socialthisday.com/playwin/admin/content/edit/project_1/home.html 来自框架,网址为 https://www.youtube.com/embed/2UJH9dCtp7w?autohide=1&autoplay=1&controls=0&border&cc_load_policy=0&color&color1&color2&disablekb&enablejsapi = 1&egm&fs&hd&iv_load_policy&loop&modestbranding = 1&origin = https%3A%2F%2Fwww.socialthisday.com&playerapiid&playlist&rel = 0&showinfo = 0&showsearch&start&theme&version = 3.域,协议和端口必须匹配.

我想解决这个问题,所以我没有看到这个消息.我知道这不是一件很重要的事情,但我现在想要如何在没有看到上述警告的情况下在我的网站上获得youtube播放器.

希望你们能帮助我!

编辑:这是输出:

<div id="YTcontainer_502513c7ebc1b">&nbsp;</div>
                        <script type="text/javascript">
                            //Load player api asynchronously.
                            var tag = document.createElement('script'); …
Run Code Online (Sandbox Code Playgroud)

javascript youtube youtube-api youtube-javascript-api

5
推荐指数
1
解决办法
1万
查看次数

用javascript API创建youtube的屏幕截图?

我正在使用播放器javascript API v3。 https://developers.google.com/youtube/js_api_reference

当我执行player.pauseVideo()时,我想在img元素中提取当前帧。

可能吗?

html javascript youtube-javascript-api

5
推荐指数
1
解决办法
1663
查看次数

如何在最后一帧暂停嵌入的YouTube视频?

播放嵌入式YouTube视频时,我不希望在完成时显示效果不佳的缩略图.相反,我想拥有最后一帧的高分辨率图像.这可能吗?

要么我可以在最后一帧暂停,或者有可能创建最后一帧的高分辨率缩略图?

youtube youtube-api youtube-javascript-api

5
推荐指数
1
解决办法
8233
查看次数

在游戏中:制作Youtube视频全屏

使用Youtube Javascript API; 有没有办法让单击"播放"按钮时全屏播放视频?

我知道一种使视频容器全屏的方法,但这仅适用于最新版本的Firefox和Chrome.

如果没有任何方法可以通过Youtube Javascript API执行此操作,您是否知道跨浏览器的方式我可以在点击播放时全屏显示YouTube视频?

这是在最新版本的Firefox和Chrome浏览器点击播放时全屏播放视频的方法:

        function onPlayerStateChange(event) {
            var player = document.getElementById("MSJbUEj7U7M");
            if (event.data != YT.PlayerState.BUFFERING && event.data != YT.PlayerState.CUED && event.data != YT.PlayerState.PLAYING)
                return -1;

            if (player.requestFullScreen) {
              console.log("1()");
              player.requestFullScreen();
            }
            else if (player.mozRequestFullScreen) {
              console.log("2()");
              player.mozRequestFullScreen();
            }
            else if (player.webkitRequestFullScreen) {
              console.log("3()");
              player.webkitRequestFullScreen();
            }
        }

        function loadYouTubeVideo(uid) {
            setTimeout( function() {
                        var id         = uid;
                        var instPlayer = new YT.Player(id, {
                            height: '480',
                            width: '853',
                            enablejsapi: 1,
                            suggestedQuality: 'highres',
                            videoId: uid,
                            events: …
Run Code Online (Sandbox Code Playgroud)

html javascript youtube-javascript-api

5
推荐指数
1
解决办法
3455
查看次数

YouTube iframe api - 为什么 onError 事件被调用两次?

我在使用 YouTube api 中的 onError 事件时遇到了一些问题。下面是一个带有假 videoId 的脚本,用于创建一个调用 onPlayerError 函数的错误。不幸的是我不明白为什么错误函数被调用两次。我认为这可能与函数内部的回调响应有关(也许?),但当 videoId 正确时, onReady 或 onStateChange 都不会被调用两次。任何人都可以看到任何明显的问题吗?提前致谢。

顺便说一句:是的,我确实需要回调和回调内的响应。这是我的完整脚本的缩短版本。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" lang="en">

<head>
<title></title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

<!-- jQuery -->
<script type="text/javascript" src="http://code.jquery.com/jquery-1.11.0.min.js"></script>

<!-- jQuery / javascript for page -->
<script type='text/javascript'>
//<![CDATA[ 

//create deferred object
var YTdeferred = $.Deferred();

//attach a function to onYouTubeIframeAPIReady
window.onYouTubeIframeAPIReady = function() {
    //resolve when youtube callback is called passing YT as a parameter
    YTdeferred.resolve(window.YT);
    console.log('Resolved'); …
Run Code Online (Sandbox Code Playgroud)

jquery callback youtube-api youtube-javascript-api youtube-iframe-api

5
推荐指数
1
解决办法
3097
查看次数

在React Native中使用Youtube Data API

是否可以在Android的React Native应用程序中使用Youtube Data API?

我想使用YouTube网站数据API来检索自己上传的频道...

youtube-api youtube-javascript-api youtube-data-api react-native

5
推荐指数
1
解决办法
4038
查看次数