Хобрук: Ваш путь к мастерству в программировании

Воспроизведение видео в Angular 2 Azure Media Services

Я не могу воспроизвести видео Azure Media Services с помощью Angular. У меня есть простая html-страница, которая работает:

<!DOCTYPE html>
<html>
<head>
    <title></title>
    <meta charset="utf-8" />
    <link href="//amp.azure.net/libs/amp/1.3.0/skins/amp-default/azuremediaplayer.min.css" rel="stylesheet">
    <script src="//amp.azure.net/libs/amp/1.3.0/azuremediaplayer.min.js"></script>

</head>
<body>
<video id="azuremediaplayer" class="azuremediaplayer amp-default-skin amp-big-play-centered" controls autoplay width="640" height="400" poster="" data-setup='{"nativeControlsForTouch": false}' tabindex="0">
        <source src="http://amssamples.streaming.mediaservices.windows.net/91492735-c523-432b-ba01-faba6c2206a2/AzureMediaServicesPromo.ism/manifest" type="application/vnd.ms-sstr+xml" />
        <p class="amp-no-js">To view this video please enable JavaScript, and consider upgrading to a web browser that supports HTML5 video</p>
</video>
</body>
</html>

Но когда я добавляю точно такой же тег видео в компонент Angular, это просто блок-бокс, который не воспроизводит мое видео.

Я добавил следующее на свою страницу index.html:

<link href="//amp.azure.net/libs/amp/1.3.0/skins/amp-default/azuremediaplayer.min.css" rel="stylesheet">
<script src="//amp.azure.net/libs/amp/1.3.0/azuremediaplayer.min.js"></script>

И я добавил тег видео на html-страницу моего компонента:

<video id="azuremediaplayer" class="azuremediaplayer amp-default-skin amp-big-play-centered" controls autoplay width="640" height="400" poster="" data-setup='{"nativeControlsForTouch": false}' tabindex="0">
        <source src="http://amssamples.streaming.mediaservices.windows.net/91492735-c523-432b-ba01-faba6c2206a2/AzureMediaServicesPromo.ism/manifest" type="application/vnd.ms-sstr+xml" />
        <p class="amp-no-js">To view this video please enable JavaScript, and consider upgrading to a web browser that supports HTML5 video</p>
</video>

Это самая простая установка, в которой только один модуль и один компонент, и больше ничего на странице. Я создал проект, используя последний пример быстрого запуска Angular, поэтому у меня должны быть последние пакеты. Что мне не хватает?

24.01.2017

  • ваш автономный образец не работает для меня, и type="application/vnd.ms-sstr+xml" не является допустимым типом мультимедиа для видео HTML5 25.01.2017
  • Это, безусловно, допустимый формат для проигрывателя мультимедиа Azure Media Services. Ознакомьтесь с кратким руководством в проигрывателе мультимедиа Azure: amp.azure.net/libs/amp. /последние/документы 25.01.2017
  • @Offbeatmammal, поскольку автономный образец не работает, если вы просто сохраните html в файл и попытаетесь загрузить его в браузере, это не сработает. Но если вы загружаете страницу с помощью веб-сервера, я сделал это с помощью Kestrel, она загружается как есть. 25.01.2017

Ответы:


1

Я нашел ответ на это. Мне нужно было загрузить файл определений машинописного текста из Microsoft: https://amp.azure.net/libs/amp/latest/docs/

Я поместил это в папку с наборами и добавил ссылочный путь к моему видеомодулю:

/// <reference path="../../typings/azuremediaplayer.d.ts" />

Вам все еще нужно добавить файлы библиотеки медиаплеера Azure в ваш index.html:

<link href="//amp.azure.net/libs/amp/1.8.0/skins/amp-default/azuremediaplayer.min.css" rel="stylesheet">
<script src="//amp.azure.net/libs/amp/1.8.0/azuremediaplayer.min.js"></script>

У меня есть очень простой компонент, который отображает только видео.

HTML:

<video 
    id="vid1" 
    class="azuremediaplayer amp-default-skin" 
    autoplay controls width="640" height="400" 
    poster="poster.jpg" >
    <p class="amp-no-js">
        To view this video please enable JavaScript, and consider upgrading to a web browser that supports HTML5 video
    </p>
</video>

Код компонента:

import { Component, ElementRef, OnInit } from '@angular/core';

@Component({
    moduleId: module.id,
    selector: 'my-azure-media-player',
    templateUrl: 'azure-media-player.component.html'
})
export class AzureMediaPlayerComponent implements OnInit {

    constructor(private elRef: ElementRef) {}

    ngOnInit(): void {

        var myPlayer = amp('vid1');
        console.log(myPlayer.currentTechName());
        myPlayer.autoplay(true);
        myPlayer.controls(true);
        myPlayer.src({
            type: "application/vnd.ms-sstr+xml",
            src: "//amssamples.streaming.mediaservices.windows.net/91492735-c523-432b-ba01-faba6c2206a2/AzureMediaServicesPromo.ism/manifest"
        });

    }
}

Отсюда вы можете играть с настройками.

30.01.2017
  • Не забудьте обновить версии при импорте скрипта и css, это избавит вас от некоторых проблем. 13.12.2018
  • текущая версия 2.3.4 amp.azure.net/libs/amp/ последний/docs/changelog.html 24.05.2020
  • Новые материалы

    Создание успешной организации по науке о данных
    "Рабочие часы" Создание успешной организации по науке о данных Как создать эффективную группу по анализу данных! Введение Это обзорная статья о том, как создать эффективную группу по..

    Технологии и проблемы будущей работы
    Изучение преимуществ и недостатков технологий в образовании В быстро меняющемся мире технологии являются решающим фактором в формировании будущего работы. Многие отрасли уже были..

    Игорь Минар из Google приедет на #ReactiveConf2017
    Мы рады сообщить еще одну замечательную новость: один из самых востребованных спикеров приезжает в Братиславу на ReactiveConf 2017 ! Возможно, нет двух других кланов разработчиков с более..

    Я собираюсь научить вас Python шаг за шагом
    Привет, уважаемый энтузиаст Python! 👋 Готовы погрузиться в мир Python? Сегодня я приготовил для вас кое-что интересное, что сделает ваше путешествие более приятным, чем шарик мороженого в..

    Альтернатива шаблону исходящих сообщений для архитектуры микросервисов
    Познакомьтесь с двухэтапным сообщением В этой статье предлагается альтернативный шаблон для папки Исходящие : двухэтапное сообщение. Он основан не на очереди сообщений, а на..

    React on Rails
    Основное приложение Reverb - это всеми любимый монолит Rails. Он отлично обслуживает наш API и уровень просмотра трафика. По мере роста мы добавляли больше интерактивных элементов..

    Что такое гибкие методологии разработки программного обеспечения
    Что представляют собой гибкие методологии разработки программного обеспечения в 2023 году Agile-методологии разработки программного обеспечения заключаются в следующем: И. Введение A...