Я не могу найти свою ошибку здесь. Я подключаю дорожку soundcloud к audioNode
, и это до biquadFilter
, поэтому я могу применить к нему выравнивание. Все это внутри AngularJs AppmediaElement работает в Chrome, но не в Firefox или Edge (веб-аудио api/angularJS)
Он работает без каких-либо проблем в хроме, но в Firefox и MS Крае Я получаю эту ошибку:
Error: this.source.mediaElement is undefined
soundcloudObject.[email protected]://localhost:8080/app/app.module.js:535:13
Вот соответствующая часть кода
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;
});
Я создаю soundcloudObject со всеми данными в моем контроллере, а затем вызываю его на мой взгляд на .play()
или .playPause()
. объект (так называемый SoundCloud) существует, так как я могу видеть в моем журнале:
scope.soundcloud
Object { source: MediaElementAudioSourceNode }
Но тогда я называю soundcloud.play()
и я получаю TypeError: this.source.mediaElement is undefined
Я невежественный ...