react-native-youtube-iframe Props全解析:定制你的视频播放器
【免费下载链接】react-native-youtube-iframeA wrapper of the Youtube-iframe API built for react native.项目地址: https://gitcode.com/gh_mirrors/re/react-native-youtube-iframe
react-native-youtube-iframe是一个基于YouTube-iframe API构建的React Native组件,让开发者能够轻松地在移动应用中集成YouTube视频播放功能。本文将详细解析该组件的所有Props,帮助你快速掌握如何定制符合需求的视频播放器。
核心基础属性 🚀
height - 播放器高度
Number Required
设置WebView容器的高度。根据YouTube官方建议,嵌入式播放器的视口至少为200px×200px。如果显示控件,播放器必须足够大以完全显示控件而不缩小视口。推荐16:9比例的播放器至少为480像素宽和270像素高。
width - 播放器宽度
Number
设置WebView容器的宽度。播放器将自动适应父容器的宽度,除非父容器指定了alignItems或justifyContent(取决于flex方向),这种情况下需要显式设置宽度。
videoId - 视频ID
String
指定要播放的YouTube视频ID。例如,对于URLhttps://www.youtube.com/watch?v=iee2TATGMyI,视频ID为iee2TATGMyI。
play - 播放控制
Boolean
控制播放器播放或暂停视频的标志。确保配合onChangeState事件来处理用户从YouTube播放器UI暂停视频的情况。
注意:在某些移动浏览器(如Chrome和Safari)中,HTML5
<video>元素仅允许在用户交互(如点击播放器)时开始播放。不过WebView提供了克服此限制的API,在大多数情况下允许自动播放。如果自动播放仍然不起作用(通常受旧版Android设备影响),可以使用forceAndroidAutoplay属性。
播放列表属性 🎞️
playList - 播放列表
String Array[String]
指定要播放的播放列表。可以是播放列表ID或视频ID列表。
使用示例:
playList={'PLbpi6ZahtOH6Blw3RGYpWkSByi_T7Rygb'}或
playList={['QRt7LjqJ45k', 'fHsa9DqmId8']}playListStartIndex - 播放列表起始索引
Number
从指定索引开始播放播放列表。
注意:仅当播放列表是视频ID列表时才有效。
事件处理属性 🔄
onChangeState - 状态变化事件
function(event: string)
当播放器状态更改时触发此事件。回调函数将收到一个对应新播放器状态的事件字符串。可能的值包括:
| events | description |
|---|---|
| unstarted | 第一个视频加载前触发 |
| video cue | 下一个视频准备就绪 |
| buffering | 当前视频处于播放状态但因缓冲而停止 |
| playing | 当前视频正在播放 |
| paused | 当前视频已暂停 |
| ended | 视频播放完毕 |
onReady - 就绪事件
function(event: string)
当播放器完成加载并准备好接收API调用时触发此事件。如果希望在播放器准备就绪后自动执行某些操作(如播放视频或显示视频信息),应用程序应实现此函数。
onError - 错误事件
function(error: string)
当播放器发生错误时触发此事件。API会将错误字符串传递给事件监听器函数。可能的值包括:
| errors | reason |
|---|---|
| invalid_parameter | 请求包含无效的参数值。例如,如果指定的视频ID没有11个字符,或者视频ID包含无效字符(如感叹号或星号),就会发生此错误。 |
| HTML5_error | 请求的内容无法在HTML5播放器中播放,或者发生了与HTML5播放器相关的其他错误。 |
| video_not_found | 请求的视频未找到。当视频被删除(无论出于何种原因)或被标记为私有时,会发生此错误。 |
| embed_not_allowed | 请求视频的所有者不允许在嵌入式播放器中播放该视频。 |
播放器控制属性 🎛️
mute - 静音控制
Boolean
控制播放器是否静音的标志。
volume - 音量控制
Number
设置音量。接受0到100之间的整数。
playbackRate - 播放速率
Number
设置当前视频的建议播放速率。如果播放速率发生变化,只会对已准备或正在播放的视频生效。
调用此函数不能保证播放速率实际会改变。但是,如果播放速率确实发生变化,onPlaybackRateChange事件将触发,代码应响应该事件,而不是依赖于调用setPlaybackRate函数这一事实。
onPlaybackRateChange - 播放速率变化事件
function(playbackRate: Number)
当视频播放速率变化时触发此事件。应用程序应响应该事件,不应假设播放速率会在playbackRate值更改时自动变化。同样,代码不应假设视频播放速率只会因显式调用setPlaybackRate而变化。
API传递给事件监听器函数的playbackRate将是一个标识新播放速率的数字。getAvailablePlaybackRates方法返回当前准备或正在播放的视频的有效播放速率列表。
高级配置属性 ⚙️
initialPlayerParams - 初始播放器参数
InitialPlayerParams
播放器挂载时初始化的一组参数。
注意:更改这些参数可能导致播放器重新启动或直到重新挂载才会更改。
| property | type | default | info |
|---|---|---|---|
| loop | boolean | false | 控制视频是否循环播放 |
| controls | boolean | true | 显示或隐藏播放器控件 |
| cc_lang_pref | string | 设置默认的字幕语言 | |
| showClosedCaptions | boolean | false | 是否显示字幕 |
| color | string | 'red' | 播放器控件的颜色 |
| start | Number | 视频开始播放的时间(以秒为单位) | |
| end | Number | 视频结束播放的时间(以秒为单位) | |
| preventFullScreen | boolean | false | 控制是否允许全屏 |
| playerLang | String | 设置播放器界面的语言 | |
| iv_load_policy | Number | 控制视频播放时是否显示视频注解 | |
| modestbranding | boolean | false | 减少YouTube品牌标识 |
| rel | boolean | false | 视频结束时是否显示相关视频 |
webViewProps - WebView属性
传递给底层WebView(react-native-webview)的属性。完整的属性列表可以在react-native-webview文档中找到。
forceAndroidAutoplay - 强制Android自动播放
Boolean
更改用户字符串以使自动播放在某些Android设备的iframe播放器上工作。
使用的用户代理字符串: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36'
样式属性 🎨
viewContainerStyle - 容器样式
应用于WebView容器的样式属性。
webViewStyle - WebView样式
应用于WebView的样式属性。
实际应用示例
以下是一个基本用法示例,展示了如何使用一些核心Props来创建一个简单的视频播放器:
import React, { useState, useCallback } from "react"; import { Button, View, Alert } from "react-native"; import YoutubePlayer from "react-native-youtube-iframe"; export default function App() { const [playing, setPlaying] = useState(false); const onStateChange = useCallback((state) => { if (state === "ended") { setPlaying(false); Alert.alert("视频播放完毕!"); } }, []); const togglePlaying = useCallback(() => { setPlaying((prev) => !prev); }, []); return ( <View> <YoutubePlayer height={300} play={playing} videoId={"iee2TATGMyI"} onChangeState={onStateChange} initialPlayerParams={{ controls: true, showClosedCaptions: false, modestbranding: true }} /> <Button title={playing ? "暂停" : "播放"} onPress={togglePlaying} /> </View> ); }安装指南
要开始使用react-native-youtube-iframe,需要先安装依赖:
首先安装
react-native-webview:- React Native CLI应用 - 按照官方指南安装
- Expo应用 - 按照Expo文档安装
安装react-native-youtube-iframe:
# 使用yarn(推荐) yarn add react-native-youtube-iframe # 使用npm npm install react-native-youtube-iframe
注意:npm在处理peer依赖方面存在一些问题,默认会尝试安装所有peer依赖。如果你的项目不使用React 17,可能会导致安装失败。可以使用以下命令解决:
npm install react-native-youtube-iframe --legacy-peer-deps
通过合理配置这些Props,你可以打造出功能丰富、用户体验优秀的YouTube视频播放器,满足各种应用场景的需求。无论是简单的视频播放还是复杂的播放列表管理,react-native-youtube-iframe都能提供强大的支持。
【免费下载链接】react-native-youtube-iframeA wrapper of the Youtube-iframe API built for react native.项目地址: https://gitcode.com/gh_mirrors/re/react-native-youtube-iframe
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考