与 PhoneGap 一起安装时 SC.get() 不起作用

问题描述 投票:0回答:2

我正在尝试使用 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.');
            }
    
        });

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

ios cordova soundcloud
2个回答
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();
     }
}

希望这有帮助! 阅读文档,一段时间后它会变得更简单。


0
投票

问题在于,当它安装在手机上时,没有返回任何内容,SC.get 只是不会返回任何曲目,因此它肯定无法流式传输它们。事实证明,无论出于何种原因,当通过phonegap在手机上安装时,您必须使用完整路径:api.soundcloud.com/tracks而不仅仅是/tracks/,否则它将无法工作。不知道为什么会出现这种情况,但这为我解决了问题。

© www.soinside.com 2019 - 2024. All rights reserved.