cdvcol / yii2-widget-video
Yii2视频小部件
v0.4.0.4
2022-08-17 03:48 UTC
Requires
- php: ~8.1
- cdvcol/yii2-requirejs: ^0.1.1
- cdvcol/yii2-widget-fullscreen: ^0.3.2
- composer/ca-bundle: ^1.3.2
- guzzlehttp/guzzle: ^7.3
- guzzlehttp/psr7: ^2.3.0
- npm-asset/bootstrap: >=5.1
- scssphp/scssphp: ^1.10.0
- symfony/deprecation-contracts: ^3.1.0
- symfony/polyfill-intl-idn: ^1.25.0
- symfony/polyfill-intl-normalizer: ^1.25.0
- symfony/polyfill-mbstring: ^1.25.0
- symfony/polyfill-php72: ^1.25.0
- ua-parser/uap-php: ^3.9
- yiisoft/yii2: ~2.0.45
- yiisoft/yii2-bootstrap5: @dev
This package is not auto-updated.
Last update: 2024-09-26 22:04:36 UTC
README
用于处理来自
- youtube - 视频 和 播单
- vimeo - 不记得了,可能两者都支持
- wistia - 任何东西,都是付费垃圾
- brightcove - 和上面一样
- twitch - 支持所有这些,显然直播等有限制,只需用常识即可
- mp4 容器 - 只要浏览器支持即可
它显然依赖于Yii2决定作为默认值添加的所有垃圾 - 引擎垃圾,jQueer...等等
演示
https://yii.cacko.net/video/widget 它只是一个包含所有选项的表单,因此您可以测试,它的外观和感觉很原始。演示网站源代码位于 https://gitlab.com/cacko/yii2-widgets
用法
VideoWidget::widget([ 'url' => 'https://www.youtube.com/watch?v=N4q2kBe82-o', ])
选项
url- 必需autoPlay- 自动播放视频。如果您使用新的IE(基于Chromium的浏览器) - 您很可能会遇到静音视频。脚本将尽力在可能的情况下以声音播放它。 请勿使用它,这是一个愚蠢的想法。hideContols- 隐藏原生的提供者控件,只显示音量和全屏。通常这个想法与startTimestamp结合使用,使非直播流看起来像流。基本上毫无用处,因为普通用户只需打开开发者工具并删除非触摸事件即可。startTimestamp- 开始时间,以Unix时间戳(秒)为单位。请注意,时间戳来自服务器,但等待发生在客户端浏览器上,因此如果他们的时间不准确,它也会不准确。startPosition- 从哪里开始视频,以秒为单位openInModal- 在模态对话框中打开视频loop- 很无意义的东西,但无论如何,视频或播单结束后会重复。placeholderImage- 用视频缩略图替换,如果您想放您的糟糕的标志来提高您的生殖器placeholderEndImage- 视频结束后显示。逻辑上,如果您使用loop,则永远不会显示..明白吗?
结合一些选项可能是无意义的,再次使用常识。
设置
安装
只需使用composer即可,好吗?或者最好自己编写。
composer require cacko/yii2-widget-video
屏幕截图持久性
扩展程序将下载的缩略图存储在系统临时文件夹中。如果您想更改,请设置对Cacko\Yii2\Widgets\Video\Models\ScreenshotInterface的依赖项。如果您不知道如何操作 - 阅读手册。
捕获控制器
某些提供者或如果您使用mp4文件,则没有截图api,因此它通过垃圾方式完成,并需要控制器端点。它现在指向某个地方,如果您想更改它,就像上面一样,DI -> Cacko\Yii2\Widgets\Video\Controller\ControllerInterface..等等
Yii::$container->set('Cacko\Yii2\Widgets\Video\Models\ScreenshotInterface', MyJunkPersistanceCrap::class);
提供者凭据
目前只有youtube和twitch需要凭据,只需在主应用程序配置中设置组件定义即可。
'components' => [ 'youtubeApi' => [ 'class' => 'Cacko\Yii2\Widgets\Video\Components\YouTube\Api', 'youtubeKey' => 'xxxx', ], 'twitchApi' => [ 'class' => 'Cacko\Yii2\Widgets\Video\Components\Twitch\Api', 'clientId' => 'xxx', 'secretId' => 'xxx', ]