2016-04-21 10 views
0

Ich kann meinen Fehler hier nicht finden. Ich verbinde eine Soundcloudspur mit einer audioNode und einer biquadFilter, damit ich eine Entzerrung anwenden kann. All dies innerhalb einer AngularJS AppmediaElement funktioniert auf Chrome aber nicht Firefox oder Edge (Web Audio API/angularJS)

Es funktioniert ohne Probleme in Chrom, aber in Firefox und MS Rand diesen Fehler Ich erhalte:

Error: this.source.mediaElement is undefined 
    [email protected]://localhost:8080/app/app.module.js:535:13 

Hier ist der relevante Teil des Codes

app.factory("soundcloudObject", function(){ 
function soundcloudObject(url){ 
    if (typeof url === 'undefined') { 
     url= "http://api.soundcloud.com/tracks/119451720/stream"; 
     } 

    var clientId = "?client_id=MY_CLIENT_ID"; 
    var song = new Audio(); 
    song.crossOrigin = "anonymous"; 
    song.src = url + clientId; 

    this.source = scope.audioContext.createMediaElementSource(song);   
} 

var isPlaying = false; 
soundcloudObject.prototype.playPause = function(){   
    if (isPlaying === true){ 
     this.source.disconnect(); 
      isPlaying = false; 
      console.log("Music Is Not Playing"); 
    } 
    else{ 
     this.source.connect(scope.musicEq); 
this.source.mediaElement.play(); //##################//**LINE 535**// 
     isPlaying = true; 
    } 
}; 

soundcloudObject.prototype.play = function(){ 
    this.source.disconnect(); 
    this.source.connect(scope.musicEq); // connect to EQ Node 
    this.source.mediaElement.play(); 
    isPlaying = true; 
}; 



soundcloudObject.prototype.disconnect = function(){ 

    this.source.disconnect(); 
}; 

return soundcloudObject; 

}); 

Ich erstellen ein SoundcloudObject mit allen Daten in meinem Controller, und rufen Sie dann in meiner Sicht zu .play() oder .playPause(). Das Objekt (genannt Soundcloud) vorhanden ist, wie ich in meinem Log sehen:

scope.soundcloud 
Object { source: MediaElementAudioSourceNode } 

soundcloud object

Aber dann rufe ich soundcloud.play() und ich bekomme TypeError: this.source.mediaElement is undefined

Ich bin ratlos ...

Antwort

0

Sieht aus wie .mediaElement ist veraltet.

das Update war zurück in der Knotenkette gehen und Song (die Media-Element-Quelle selbst) song.play() und es funktionierte in Firefox, Chrome und Edge.

Verwandte Themen