Angular 2 Azure媒体服务视频播放

bou*_*ver 2 video html5 azure angular

我无法使用Angular播放Azure Media Services视频。我有一个简单的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>
Run Code Online (Sandbox Code Playgroud)

但是,当我将完全相同的视频标签添加到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>
Run Code Online (Sandbox Code Playgroud)

然后将视频标签添加到我的组件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>
Run Code Online (Sandbox Code Playgroud)

这是最简单的设置,只有一个模块和一个组件,页面上没有其他内容。我使用Angular的最新快速入门示例创建了该项目,因此我应该拥有最新的软件包。我想念什么?

bou*_*ver 5

我找到了答案。我需要从Microsoft下载打字稿定义文件:https : //amp.azure.net/libs/amp/latest/docs/

我将其放在我的类型文件夹中,并为视频模块添加了参考路径:

/// <reference path="../../typings/azuremediaplayer.d.ts" />
Run Code Online (Sandbox Code Playgroud)

您仍然需要将Azure Media Player库文件添加到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>
Run Code Online (Sandbox Code Playgroud)

我有一个非常简单的组件,只显示视频。

的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>
Run Code Online (Sandbox Code Playgroud)

组件代码:

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"
        });

    }
}
Run Code Online (Sandbox Code Playgroud)

从这里您可以播放设置。