首页 > 解决方案 > Ionic4/Angular 8 - HTML 视频标签不播放 base64 字符串

问题描述

看在我的份上,我无法弄清楚为什么会这样。当我使用 base64 发送消息时,我可以看到视频并且播放正常,但是,当我收到 base64 时,我看不到视频。它只是在中间显示一个断开的链接图标。

html部分:

<video controls preload="auto" class="video-style">
  <source type="video/mp4" [src]="(message.data.base64) | safe" />
</video>

安全管

import { Pipe, PipeTransform } from '@angular/core';
import { DomSanitizer, SafeUrl } from '@angular/platform-browser';

@Pipe({
  name: 'safe',
})
export class SafePipe implements PipeTransform {
  private sanitizer: DomSanitizer;
  constructor(sanitizer: DomSanitizer) {
    this.sanitizer = sanitizer;
  }
  transform(value: string): SafeUrl {
    return this.sanitizer.bypassSecurityTrustUrl(value);
  }
}

然后 message.data.base64 ==="data:video/mp4;charset=utf-8;base64,iVBORw0KGgoAAA…b2z7S/NR4vPp0+njq+gEgAr7mfb3/JQAAAABJRU5ErkJggg==" 我尝试了包含和排除的字符集,没有区别。我需要 Dom Sanatizer,否则 Angular 会对其进行消毒。

任何帮助,将不胜感激。

标签: angularionic-framework

解决方案


推荐阅读