油管的文档直接放了示例代码:

<!DOCTYPE html>
<html><body><!-- 1. The <iframe> (and video player) will replace this <div> tag. --><div id="player"></div><script>// 2. This code loads the IFrame Player API code asynchronously.var tag = document.createElement('script');tag.src = "https://www.youtube.com/iframe_api";var firstScriptTag = document.getElementsByTagName('script')[0];firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);// 3. This function creates an <iframe> (and YouTube player)//    after the API code downloads.var player;function onYouTubeIframeAPIReady() {player = new YT.Player('player', {height: '360',width: '640',videoId: 'M7lc1UVf-VE',events: {'onReady': onPlayerReady,'onStateChange': onPlayerStateChange}});}// 4. The API will call this function when the video player is ready.function onPlayerReady(event) {event.target.playVideo();}// 5. The API calls this function when the player's state changes.//    The function indicates that when playing a video (state=1),//    the player should play for six seconds and then stop.var done = false;function onPlayerStateChange(event) {if (event.data == YT.PlayerState.PLAYING && !done) {setTimeout(stopVideo, 6000);done = true;}}function stopVideo() {player.stopVideo();}</script></body>
</html>

直接给出了注释,很清晰明了。当然 https://www.youtube.com/iframe_api 也是可以直接用 script 标签直接引入。其中 videoId 可以在油管上找到。我们随便找一个视频就可以在地址栏看到 https://www.youtube.com/watch?v=PkZNo7MFNFg 后面的 v=PkZNo7MFNFg 这个就是 videoId 。

1. 基本参数

油管的 IFrame Player API 可自定义的程度并不高,可能也是出于要保护对自家产品利益的目的,视频播放结束后推荐列表之类的是去不掉的。

参数名 说明
autoplay 取值0和1,自动播放。默认为0。(我自己试了好像不生效,Stack Overflow 上有人说改了)
cc_lang_pref 显示字幕的默认语言,取值为 ISO 639-1双字母语言代码
cc_load_policy 值:1。默认根据用户偏好设置确定的。设为1会使系统在默认情况下显示字幕,即使在用户关闭字幕。
color 进度条颜色,只有两种可选 red 和 white,设置成 white 时,modestbranding 无效。
modestbranding 是否显示 YouTube 徽标。
controls 是否显示播放器控件 0 不显示,1 显示,默认 1。
disablekb 是否允许键盘控制,0 允许,1 不允许,默认 0。
enablejsapi 是否允许通过 IFrame API 控制播放器。0 不允许,1 允许,默认 0。
end 播放多少秒后停止。(正整数)
fs 是否显示全屏按钮,0 不显示,1 显示,默认 1。
hl 播放器多语言。取值为 [ISO 639-1双字母语言代码。
iv_load_policy 显示视频注释,而设置为3不会显示视频注释。默认值为1。(我没发现默认注释是啥玩意)
listType 有效的参数值playlistsearchuser_uploads
list 结合 listType 确定播放列表的内容。
loop 循环播放视频,0 不循环,1循环。默认值为 0。单视频时需要在playlist放一个相同videoId
origin 大致就是安全域名吧。enablejsapi为 1 的时候,这个参数是当前域名。
playlist 要播放的视频列表,以逗号分隔的视频ID。
playsinline 控制在 iOS 全屏播放。0 全屏,1 不全屏。
start 从多少秒开始播放。(正整数)
widget_referrer 看了半天没看明白的 api 。(大致好像是表示来源……)
rel 播放结束后显示相关视频。0 不显示,1 显示。(这个api已经修改为0推荐同频道,1推荐相关)
showinfo (弃用) 是否显示视频标题和上传者等信息。0 不显示,1 显示。

在 onYouTubeIframeAPIReady 方法中直接传参就可以了,如下:

function onYouTubeIframeAPIReady() {player = new YT.Player('player', {height: '360',width: '640',videoId: 'PkZNo7MFNFg',playerVars: {enablejsapi: 1,autoplay: 1,controls: 0,loop: 1,cc_lang_pref: 'en',iv_load_policy: 1,        },events: {'onReady': onPlayerReady,'onStateChange': onPlayerStateChange}});
}

2. 钩子函数(hook)

从上面的代码案例大家其实也看到了,在 events 里面有 onReadyonStateChange 其实对应的就是相应的钩子函数。

hook 作用
onReady 在播放器准备就绪后触发。
onStateChange 视频状态发生改变时会触发。
onPlaybackQualityChange 视频播放质量发生变化时触发。
onPlaybackRateChange 视频播放速率发生变化时触发。
onError 播放器中发生错误时触发。
onApiChange 播放器已加载(或卸载)具有公开 API 方法的模块触发。

使用方法就像案例一样。

3. YT.Player 对象方法(几个常用的)

方法名 作用
playVideo() 播放
pauseVideo() 暂停
stopVideo() 停止
seekTo(seconds:Number, allowSeekAhead:Boolean) 跳转到视频多少秒。seconds要跳转的秒数,allowSeekAhead 当秒数已经超出已缓冲时间,是否发出请求
nextVideo() 播放下一个视频
previousVideo() 播放上一个视频
playVideoAt(index:Number) 播放指定视频(index 必传,为视频列表下表)
mute() 设置为静音
unMute() 取消为静音
isMuted() 获取当前是否静音
setVolume(volume:Number) 设置播放器的当前音量
getVolume() 获取播放器的当前音量
setSize(width:Number, height:Number) 设置视频大小(单位:像素)
getPlayerState() 返回播放器的状态
getCurrentTime() 返回视频已播放的时长
getPlaybackQuality() 当前视频的实际质量
setPlaybackQuality(suggestedQuality:String) 设置当前视频的建议质量。suggestedQuality 参数的值可以为smallmediumlargehd720hd1080highres 或 default
getDuration() 返回当前正在播放的视频的时长
getVideoUrl() 返回当前已加载/正在播放的视频的 YouTube.com 网址
getVideoEmbedCode() 返回当前已加载/正在播放的视频的嵌入代码。
getPlaylist() 按当前顺序返回播放列表中视频ID的数组。
getPlaylistIndex() 返回当前正在播放的播放列表中视频的索引。

使用方法我想不用说,大家都知道怎么用啦。player.playVideo()

YouTube IFrame Player API 的使用相关推荐

  1. YouTube iframe嵌入式播放器及播放器参数 自动播放,循环播放,播放列表,不显示 YouTube 徽标

    YouTube 嵌入式播放器及播放器参数 概览 本文档介绍如何在应用中嵌入 YouTube 播放器,并定义了 YouTube 嵌入式播放器可以使用的参数. 通过将参数附加到 iframe 网址末尾,您 ...

  2. 【HTML 往日冒险 09】多媒体 插件 音频audio 视频video iframe YouTube iframe bilibili

    HTML 往日冒险 09 HTML 多媒体 HTML 插件 plug-in 音频 audio 视频 video YouTube HTML 多媒体 Web 上的多媒体指的是音效.音乐.视频和动画 不同的 ...

  3. 一个简单的图层,让您可以在YouTube API上发挥想象力

    VueYoutube (VueYoutube) A simple component for a powerful API. vue-youtube provides a simple layer f ...

  4. 如何使用Google Analytics(分析)设置和跟踪YouTube频道的效果

    Managing a YouTube channel is a lot of work. It includes content experimentation which can make or b ...

  5. 嵌入式智能家居项目视频监控_智能化您的视频嵌入

    嵌入式智能家居项目视频监控 Video content is taking over the Internet. The trend began long ago and the most recen ...

  6. 如何在YouTube Api限额的情况下获取更多视频

    文章来自自己的博客 YouTube视频 谷歌限制了YouTube api v3的请求量,一天10000配额,这里不是10000次请求,每次请求根据不同参数消耗不同配额.为了摆脱这种限制而获得更多的新发 ...

  7. 引入神经网络 API 1.1、支持全面屏,Android 9.0 来了!

    点击上方"CSDN",选择"置顶公众号" 关键时刻,第一时间送达! iPhone X 那个一直被吐槽的刘海儿,被众多 Android 手机纷纷用上了. 据 Go ...

  8. react 使用 Youtube 播放器

    使用其他元素的事件来播放和暂停 youtube 组件, 类似老头环官网那种, 点击后直接全屏播放 youtube 视频 老头环官网: ELDEN RING | Official Website (EN ...

  9. Youtube、Facebook、Insgram三平台数据获取方式之前篇

    Youtube.Facebook.Insgram三平台数据获取方式之前篇 ​ 本篇文章主要介绍项目背景和最终实现效果,每个平台具体的操作方式请自行选择观看. 提前说明:每个平台仅获取视频相关信息并不涉 ...

  10. youtube 播放列表

    先是css <style type="text/css"> /* 缩略图 css */ #thumb{float:right;margin-right:24px; }. ...

最新文章

  1. 80%的企业社会化商务应用可能无法取得预期效果
  2. MySQL 技术篇- linux下mysql数据库利用binlog文件进行数据回滚实例演示,binlog恢复数据库的两种方式
  3. 二维大地电磁有限元数值模拟矩形+线性插值
  4. Python如何导入自己编写的py文件
  5. warning: incompatible implicit declaration of built-in function ‘exit’
  6. A的大小是多少c语言中,C/C+中字符(A)的大小
  7. pycharm Debug调试
  8. HTTP接口测试工具Postman
  9. pillow安装出错的解决办法
  10. java注解拦截_轻松实现java拦截器+自定义注解
  11. 百度前员工因内网发布“女优一览表”被辞退,自诉:想转鉴黄师
  12. 高等代数期末考试题库及答案_高等代数二考试题及答案期末答案
  13. 小米案例分析PPT模板
  14. caxa计算机绘图工程师,CAXA计算机绘图
  15. dakai微信小程序 ios_【iOS】微信小程序打开APP到底是怎么回事?
  16. 我的世界中国版服务器账号封了,Hypixel中国版服务器停止运营公告
  17. JAVA对接短信通知接口
  18. NOIP2005 篝火晚会 解题报告
  19. SAP 成本组件分割价格详解
  20. 究竟什么是CRM(客户关系管理系统)呢?

热门文章

  1. 有限角度层析成像重建:基于无监督正弦图适应的合成重建
  2. 菜鸟日记(yzy):初见opencMS
  3. 【win7安装composer错误】:The quot;https://getcomposer.org/download/1.6.2/composer.phar.sigquot; file cou
  4. Markdown必备,Lsky-pro图床配置
  5. 操作系统-进程甘特图画法
  6. Win10只读文件夹怎么删除
  7. HDU-4567-思维-Brilliant Programmers Show -13长沙邀请赛
  8. 【面试题】15.项目相关
  9. jQuery插件库免下载做法
  10. Swagger、Rap与Yapi接口管理