2

我寫了一個服務,用於在Ionic框架中在iOS和Android上播放媒體。它使用Cordova的Media插件。我是init媒體對象,並在Java Script中使用此代碼播放它,但它返回未定義的對象錯誤。Java腳本中的未定義對象Ionic框架

var self = { 
'currentTrack': null, 
'initPlayer': function (videoID) { 
self.currentTrack = Media(IP_ADDRESS + 'stream/'+videoID); 
//self.currentTrack = _track; 
console.log('initd'); 
}, 
'Play': function() { 
console.log(self.currentTrack); 

    self.currentTrack.play(); 



} 
}; 

而且在模板我初始化的audioPlayer這樣:

<ion-content ng-init="audioPlayer.initPlayer('foo')> 

,並在按鈕我宣佈了播放功能:

<button ng-click="audioPlayer.Play()" 

錯誤:

Error: undefined is not an object (evaluating 'self.currentTrack.play') 
+1

在初始化介質變量之前,您是否等待deviceReady事件? –

+0

@JuanFernandezSosa我正在使用ionic.Platform.ready(function(){});我如何等待設備準備好?謝謝 –

+0

嗯,是的,其他方式是使用cordova的deviceready事件:document.addEventListener(「deviceready」,successCallback,errorCallback);您是否嘗試使用Chrome的檢查器使用斷點來調試您的應用程序? –

回答

0

如果您正在開發您的應用程序瀏覽器,科爾多瓦插件不能在瀏覽器中工作,而發展。 您需要構建應用程序才能使用該插件。 您可以使用遠程調試工具來調試「.apk」或「.ipa」。 您可以通過here獲得有關遠程調試的更多信息。

請記住以下幾點,

  1. 您正在執行的deviceready事件的所有代碼。
  2. cordova.js文件必須是您要加載的第一個js文件。
+0

是的我知道,我正在測試真實的設備和模擬器。謝謝 –

+0

確保您在deviceready事件中執行了所有代碼。 –

+0

另外cordova.js文件必須是您正在加載的第一個js文件。 –