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 }
Aber dann rufe ich soundcloud.play()
und ich bekomme TypeError: this.source.mediaElement is undefined
Ich bin ratlos ...