Как я могу добавить максимальный размер к моим видео на YouTube?

Существует несколько способов сделать это.

Первый из них - Операторы агрегирования даты , которые позволяют вам анализировать значения «даты» в документах. В частности, для «группировки» в качестве основного намерения:

db.collection.aggregate([
  { "$group": {
    "_id": {
      "year": { "$year": "$created_at" },
      "dayOfYear": { "$dayOfYear": "$created_at" },
      "hour": { "$hour": "$created_at" },
      "interval": {
        "$subtract": [ 
          { "$minute": "$created_at" },
          { "$mod": [{ "$minute": "$created_at"}, 15] }
        ]
      }
    }},
    "count": { "$sum": 1 }
  }}
])

Второй способ заключается в использовании небольшого трюка, когда объект даты вычитается (или другая прямая математическая операция) из другого объекта даты, тогда результатом является числовое значение, представляющее миллисекунду времени между двумя объектами. Таким образом, просто используя дату эпохи, вы получаете представление в миллисекундах эпохи. Затем используйте математику даты для интервала:

db.collection.aggregate([
    { "$group": {
        "_id": {
            "$subtract": [
                { "$subtract": [ "$created_at", new Date("1970-01-01") ] },
                { "$mod": [ 
                    { "$subtract": [ "$created_at", new Date("1970-01-01") ] },
                    1000 * 60 * 15
                ]}
            ]
        },
        "count": { "$sum": 1 }
    }}
])

. Это зависит от того, какой формат вывода вы хотите для интервала группировки. Оба они в основном представляют одно и то же и имеют достаточные данные для повторной конструкции в качестве объекта «даты» в вашем коде.

Вы можете поместить все что угодно в разделе «оператор группировки» после группировки _id. Я просто использую основной пример «подсчета» вместо любого реального заявления от себя относительно того, что вы действительно хотите сделать.


MongoDB 4.x и Upwards

Были некоторые дополнения к операторам агрегирования даты с момента написания оригинала, но из MongoDB 4.0 будет фактическое «реальное литье типов» в отличие от основных математических приемов, сделанных здесь с преобразованием даты BSON.

Для Например, мы можем использовать $toLong и $toDate в качестве новых помощников:

db.collection.aggregate([
  { "$group": {
    "_id": {
      "$toDate": {
        "$subtract": [
          { "$toLong": "$created_at" },
          { "$mod": [ { "$toLong": "$created_at" }, 1000 * 60 * 15 ] }
        ]
      }
    },
    "count": { "$sum": 1 }
  }}
])

Это немного короче и не требует определения внешняя BSON Дата для значения «epoch» как константа при определении конвейера, поэтому она вполне согласуется для всех языковых реализаций.

Это всего лишь два из «вспомогательных» методов преобразования типов, которые все привязываются к метод $convert , который является «более длинной» формой реализации, позволяющей выполнять пользовательскую обработку на null или ошибку в преобразовании.

Это возможно даже при таком литье получить информацию о Date из ObjectId первичного ключа, так как это было бы надежным источником даты создания:

db.collection.aggregate([
  { "$group": {
    "_id": {
      "$toDate": {
        "$subtract": [
          { "$toLong": { "$toDate": "$_id" }  },
          { "$mod": [ { "$toLong": { "$toDate": "_id" } }, 1000 * 60 * 15 ] }
        ]
      }
    },
    "count": { "$sum": 1 }
  }}
])

Таким образом, «типы литья» с таким преобразованием могут быть довольно мощным инструментом.

0
задан Makyen 30 June 2019 в 01:33
поделиться

4 ответа

просто добавьте высоту и ширину в iframe

, если вы хотите занять общую ширину элемента, тогда сделайте width:100%

или вы также можете указать высоту и ширину на основе ваших требований, например так ,

iframe{
height:300px;
width:300px;
}
<div class="video-wrap">
  <div class="video-container">
    <iframe src="https://www.youtube.com/embed/drv3BP0Fdi8"></iframe>
  </div>
</div>
0
ответ дан Amaresh Amar 30 June 2019 в 01:33
поделиться

https://jsfiddle.net/xpzdnw1t /

.video-container {
  max-width: 100vw;
  width: 100%;
  height: 500px;
}

iframe {
  width: 100%;
  height: 100%;
}
<div class="video-wrap">
  <div class="video-container">
    <iframe width="560" height="315" src="https://www.youtube.com/embed/drv3BP0Fdi8" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
  </div>
</div>
0
ответ дан Irin 30 June 2019 в 01:33
поделиться

То, что вы хотите, на удивление сложно достичь, даже если вы ожидаете, что это будет довольно просто. Полностью адаптивное встроенное видео iframe может быть достигнуто с помощью небольшого обходного пути. По сути, вам нужно обернуть свой iframe в контейнер с позицией relative, чтобы вы могли абсолютно точно позиционировать iframe внутри, ограничивая переполнение и создавая искусственное дно с помощью отступов, чтобы сместить соотношение сторон.

Рассмотрим этот пример: https://jsfiddle.net/8kh9j7wx/1/

Видео всегда будет находиться в пределах родительского элемента и всегда будет сохранить 100% ширину указанного элемента, сохраняя при этом очень важное соотношение сторон, на которое другие ответы здесь не в состоянии ответить.

Вот ваша измененная разметка:

<div class="video-responsive">
    <iframe width="420" height="315" src="https://www.youtube.com/embed/2SUqC8PGrtU" frameborder="0" allowfullscreen></iframe>
</div>

Вот ваш CSS:

.video-container {
    overflow:hidden;
    padding-bottom:56.25%;
    position:relative;
    height:0;
}
.video-container iframe{
    left:0;
    top:0;
    height:100%;
    width:100%;
    position:absolute;
}

Вы можете, конечно, ограничьте ширину до максимума, объявив max-width на вашем элементе контейнера, и отцентрируйте его, используя margin:auto.

0
ответ дан Claire 30 June 2019 в 01:33
поделиться

Можно добавить свойство ширины и высоты CSS. Когда свойство ширины и высоты CSS будет установлено в значении процента, видео масштабируется вверх и вниз при изменении размеров окна браузера. Измените размеры окна браузера для наблюдения эффекта.

.video-container {
    position:relative;
    padding-bottom:56.25%;
    padding-top:30px;
    height:0;
    overflow:hidden;
}

.video-container iframe{
    position:absolute;
    top:0;
    left:0;
    width:100%;
    height:100%;
}
<div class="video-wrap">
  <div class="video-container">
    <iframe src="https://www.youtube.com/embed/drv3BP0Fdi8"></iframe>
  </div>
</div>
-1
ответ дан Makdia Hussain 30 June 2019 в 01:33
поделиться