Я пытался использовать <amp-brightcove>
для показа видео в светлой бухте в AMP-версии сайта (по-прежнему WIP).Но когда я попытался переключиться между показом видео Brightcove и баннера с изображением, скрыв контейнер видео Brightcove для отображения баннера изображения, когда пользователь нажимает на плитку изображения, и наоборот, когда нажимается видео плитка.
При попытке реализовать описанное выше через объект состояния в качестве переключателя с помощью компонента <amp-bind>
при загрузке страницы индикатор загрузки brightcove быстро исчезает, предоставляя пользователю доступ к элементам управления видео для воспроизведения видео.Но как только пользователь нажимает на плитку изображения, объект состояния будет установлен в значение false, тогда контейнер видео будет скрыт переключением имени класса, и контейнер изображения будет отображаться.
При этом я вижу, что Iframe внутри контейнера brightcove удален, а когда видео контейнер Brightcove настроен на отображение, iframe вводится обратно в контейнер <amp-brightcove>
.Но на этот раз мешающий индикатор загрузки не сработает быстро и продолжает загружаться, даже несмотря на то, что видео готово к воспроизведению.
Я попытался избавиться от датчика загрузки на контейнере Brightcove, но не смог найти какой-либо вариантвыключите его.
Попробовал несколько способов, как показано ниже:
- Попытался скрыть индикатор загрузки DIV через CSS (Невозможно переопределить свойство CSS amp с помощью!важно, так как это строго запрещено AMP),
- Поскольку датчик загрузки был помещен абсолютно в контейнер с световой бухтой, попытался отменить значение Z-Index элемента датчика загрузки до -1, переместив элемент загрузки за видео контейнером.разрешение доступа к элементам управления видео.Теперь я могу получить доступ к элементам управления видео, даже если датчик загрузки не отключен.
Я признаю, что это взлом, Пожалуйста, дайте мне знать, если есть какой-либо официальный способ отключить датчик загрузкиэлемент светлой бухты в AMP.Вот JS Fiddle или фрагмент кода, прилагаемый ниже, иллюстрирующий проблему.
Шаги для воспроизведения:
- Откройте фрагмент иливозьмите его и загрузите
- Нажмите Скрыть видео , чтобы скрыть видео контейнер
- Теперь нажмите Показать видео , чтобы отобразить видео контейнер.
После выполнения описанных выше шагов мы можем увидеть индикатор загрузки, который задерживает элементы управления видео дольше, чем ожидалось.
<!--
## Introduction
The `amp-brightcove` component allows embedding a Brightcove
[Video Cloud](https://www.brightcove.com/en/online-video-platform) or
[Perform](https://www.brightcove.com/en/perform) player.
-->
<!-- -->
<!doctype html>
<html ⚡>
<head>
<meta charset="utf-8">
<title>amp-brightcove</title>
<script async src="https://cdn.ampproject.org/v0.js"></script>
<!-- ## Setup -->
<!-- Import the Brightcove component in the header. -->
<script async="" custom-element="amp-bind" src="https://cdn.ampproject.org/v0/amp-bind-0.1.js"></script>
<script async custom-element="amp-brightcove" src="https://cdn.ampproject.org/v0/amp-brightcove-0.1.js"></script>
<meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1">
<link rel="canonical" href="https://ampbyexample.com/components/amp-brightcove/">
<style amp-boilerplate>body{-webkit-animation:-amp-start 8s steps(1,end) 0s 1 normal both;-moz-animation:-amp-start 8s steps(1,end) 0s 1 normal both;-ms-animation:-amp-start 8s steps(1,end) 0s 1 normal both;animation:-amp-start 8s steps(1,end) 0s 1 normal both}@-webkit-keyframes -amp-start{from{visibility:hidden}to{visibility:visible}}@-moz-keyframes -amp-start{from{visibility:hidden}to{visibility:visible}}@-ms-keyframes -amp-start{from{visibility:hidden}to{visibility:visible}}@-o-keyframes -amp-start{from{visibility:hidden}to{visibility:visible}}@keyframes -amp-start{from{visibility:hidden}to{visibility:visible}}</style><noscript><style amp-boilerplate>body{-webkit-animation:none;-moz-animation:none;-ms-animation:none;animation:none}</style></noscript>
<style amp-custom>.showVid{display:block;}.hideVid{display:none;}</style>
</head>
<body>
<!-- ## Basic Usage -->
<!--
A responsive brightcove video. The required data is `data-account` and `data-video-id`. Other
supported parameters are `data-player-id`, `data-embed` and `data-playlist-id`.
-->
<amp-brightcove class = "showVid" [class] = "displayVid?'showVid':'hideVid'"
data-account="906043040001"
data-video-id="1401169490001"
data-player-id="180a5658-8be8-4f33-8eba-d562ab41b40c"
layout="responsive" width="480" height="270">
</amp-brightcove>
<button style="width:100px;height:50px;background:green" on="tap:AMP.setState({displayVid:true})">
Show video
</button>
<button style="width:100px;height:50px;background:Yellow" on="tap:AMP.setState({displayVid:false})">
Hide video
</button>
</body>
</html>