【问题标题】:How to use MediaElement in Angular如何在 Angular 中使用 MediaElement
【发布时间】:2019-05-25 03:07:19
【问题描述】:

我正在尝试在 <video> 标记中呈现 YouTube 视频。

我跑npm install mediaelement

MediaComponent.html

<video width="640" height="360" id="mediaPlayer" #mediaPlayer preload="none">
    <source type="video/youtube" src="http://www.youtube.com/watch?v=nOEw9iiopwI" />
</video>

MediaComponent.ts

import * as MediaElementPlayer from 'mediaelement'; // How to import it?

@Component({
  selector: 'app-media',
  templateUrl: './media.component.html',
  styleUrls: ['./media.component.css']
})

export class MediaComponent implements OnInit, AfterViewInit, OnDestroy {

  //...
  @ViewChild('mediaPlayer') mediaPlayerElement: ElementRef;
  public mediaPlayer;


  ngAfterViewInit() {
    //..
    this.loadMediaPlayer();
  }

  loadMediaPlayer() {
    this.mediaPlayer = new  
            MediaElementPlayer(this.mediaPlayerElement.nativeElement);
  }
}

控制台很清晰。但是页面上什么也没有发生。我认为 import 语句或调用构造函数有问题

如何在 Angular 中使用 MediaElementJs

注意:the official page 上有 ReactJs 文档非常有趣,但对于 Angular,什么都没有。

【问题讨论】:

    标签: angular typescript mediaelement.js


    【解决方案1】:

    您应该在main.ts 中添加这一行。

    import 'mediaelement';
    

    然后你应该将它与以下声明一起使用。

    declare var MediaElementPlayer;
    

    【讨论】:

    • 感谢您的回答,现在我得到“TypeError: Cannot read property 'loaded' of null”是否与 jquery 有关?
    • 我不这么认为。我在一个新项目中尝试了它,它运行良好,没有任何依赖关系。我认为错误是因为您的代码中的其他部分。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多