Spotify嵌入iFrame仅播放歌曲预览

时间:2018-06-15 18:34:36

标签: angular iframe browser spotify angular-dom-sanitizer

在我的网站上,我似乎只能在Chrome和Safari中播放播放列表中的曲目预览,即使我已登录Spotify Premium。但是,完整曲目可以在Firefox中播放。为什么会出现这种情况?

这是我的网站:www.studify.online

重现的步骤: 创建一个帐户并登录 点击"音乐背景噪音" 选择一个播放列表并播放

预期行为: 当用户登录时,Widget可以播放完整的歌曲。

实际行为: 小工具它只能播放Chrome和Safari中的歌曲预览。

以下是我的某个播放列表正在使用的示例网址。 https://open.spotify.com/embed?uri=spotify:user:1276120884:playlist:3lupJoO6PjahRjP3ehIUpq"

在localhost上运行时,整个曲目可以在任何浏览器中播放,但在heroku服务器上则无法播放。

我的iFrame HTML如下:

<iframe *ngIf="playlistSelected" [src]="embedURI" width="300" height="380" frameborder="0" allowtransparency="true" allow="encrypted-media"></iframe><div class="dropdown">

我控制此iFrame的angular2组件如下:

onPlaylistSelect(playlist) {
    console.log(playlist);
    this.selected = playlist;
    this.embedURI = "https://open.spotify.com/embed?uri=" + this.selected.uri;
    this.embedURI = this.urlbypassPipe.transform(this.embedURI);
    console.log(this.embedURI);
    this.playlistSelected = true;
  }

这是我的urlbyassPipe类:

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

@Pipe({
  name: 'urlbypass'
})
export class UrlbypassPipe implements PipeTransform {
  constructor(private sanitizer: DomSanitizer) {}
  transform(url) {
    return this.sanitizer.bypassSecurityTrustResourceUrl(url);
  }

}

0 个答案:

没有答案