html - Angular 2 Azure 媒体服务视频播放

标签 html azure angular video

我无法使用 Angular 播放 Azure 媒体服务视频。我有一个简单的 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 组件时,它只是一个不播放我的视频的 block 框。

我将以下内容添加到我的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 的最新快速入门示例创建了该项目,因此我应该拥有最新的软件包。我错过了什么?

最佳答案

我找到了这个问题的答案。我需要从 Microsoft 下载 typescript 定义文件:https://amp.azure.net/libs/amp/latest/docs/

我把它放在我的打字文件夹中,并添加了我的视频模块的引用路径:

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

您仍然需要将 azure 媒体播放器 lib 文件添加到您的 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"
        });

    }
}

从这里您可以调整设置。

关于html - Angular 2 Azure 媒体服务视频播放,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41836390/

相关文章:

javascript - 根据容器的宽高设置字体大小

c# - 为什么项目找不到 Microsoft.Azure.WebJobs 3.0.0.0

asp.net - 在 Asp.net MVC 5 应用程序中将 AngularJS 升级到 Angular 6

jquery - 在 Angular2 中为 Bootstrap 添加 jQuery

Azure 查找部署名称

angular - 如何获取路由器中声明的嵌套路由列表?

javascript - 滑动门按钮无法正确点击

html - 选中复选框时删除文本

jquery - 使用 Metro UI CSS 的 super 按钮栏

java - Azure 从 Azure Java SDK 检索虚拟机的 PublicIPAddress