与PhoneGap一起安装时,SC.get()无法正常工作

时间:2014-03-03 04:24:30

标签: ios api cordova soundcloud

我正在尝试使用SoundCloud API来播放歌曲,并且一切都可以通过浏览器正常工作,但是当我尝试使用PhoneGap打包并将其安装到手机上时,它就不再有效了。

问题似乎与SC.get()函数有关。 SC.initialize()工作正常,但是当我尝试获取曲目时,每次安装在手机上时都会返回0结果。这是我正在使用的代码:

SC.get('/tracks', {q: query, filter: 'streamable' }, function(tracks){

            Ext.each(tracks, function(track){
                if(track.streamable){
                    results.push(track);
                }
            });

            if(results.length > 0){
                var tracksStore = Ext.getStore('Tracks');
                tracksStore.removeAll();
                tracksStore.sync();
                tracksStore.setData(results);
            }
            else
            {
                Ext.Msg.alert('No tracks found!', 'Try something different.');
            }

        });

在初始化函数之后立即调用此函数。有什么想法吗?

2 个答案:

答案 0 :(得分:0)

您必须使用SC.stream()功能。所以,你可以这样做:

SC.initialize({
     client_id: "YOUR_CLIENT_ID"
});
SC.stream("/tracks/293", function(sound){
      sound.play();
}

你可以这样做来获取特定用户的曲目:

SC.initialize({
     client_id: "YOUR_CLIENT_ID"
});
//Select the song in the list you want to play
var songNumber=1; 

//Get tracks from a user
SC.get('/users/8030565/tracks/', function(tracks) { 
     for (var i=0;i<tracks.length; ++i){
          tracksList.push(tracks[i]);
     }
     //Stream a track
     SC.stream("/tracks/"+tracksList[songNumber].id, function(sound){
          sound.play();
     }
}

希望这有帮助! Read the docs,一段时间后会变得更简单。

答案 1 :(得分:0)

问题是,当它安装在手机上时没有任何东西被返回,SC.get只是不会返回任何曲目,因此它肯定无法传输它们。事实证明,无论出于何种原因,当您通过phonegap在手机上安装时,您必须使用完整路径:api.soundcloud.com/tracks而不仅仅是/ tracks /否则它无法正常工作。不知道为什么会这样,但这对我来说是固定的。