【问题标题】:JavaScript Soundcloud API integration - cannot read property 'uri' of undefinedJavaScript Soundcloud API 集成 - 无法读取未定义的属性“uri”
【发布时间】:2015-12-08 14:12:22
【问题描述】:

我正在尝试从this video 复制代码。它很旧,所以我更改了 SDK 的 url。这是JS代码:

function playSomeSound(genre){
SC.get('/tracks', {
    genres: genre,
    bpm: {
        from: 40
    }
}, function(tracks){
    var random = Math.floor(Math.random() * 49);
    SC.oEmbed(tracks[random].uri, { auto_play: true}, document.getElementByID('target'));
});
}

window.onload = function(){
SC.initialize({
    client_id: '1166055b8d5ca23b9c265bf8846d1102'
});

var menuLinks = document.getElementsByClassName('genre');
for (var i = 0; i < menuLinks.length; i++){
    menuLinks(i).onclick = function(e){
        e.preventDefault();
        playsomesound(menuLinks.innerHTML);
    };
}

在启动 SC.oEmbed(....) 的第 9 行,它给出了错误“无法读取未定义的属性 'uri'。”

有人可以告诉我哪里出了问题或指出可能有帮助的资源吗?

谢谢

【问题讨论】:

    标签: javascript uri undefined soundcloud


    【解决方案1】:

    您的随机数有时高于返回的曲目数组。 因此,如果您只返回 10 首曲目,则无法访问曲目 > 10 的 uri。

    您可以简单地将限制添加到 50。 或者添加一个检查随机数不会大于tracks.length的函数。

    这是一个有效的小提琴:

    function playSomeSound(genre){
    SC.get('/tracks', {
        genres: genre,
        bpm: {
            from: 40
        }, 
        limit: 50
    }, function(tracks){
        var random = Math.floor(Math.random() * 49);
        console.log(random, tracks.length);
        SC.oEmbed(tracks[random].uri, { auto_play: true}, document.getElementById("target"));
    });
    }
    
    window.onload = function(){
    SC.initialize({
        client_id: '1166055b8d5ca23b9c265bf8846d1102'
    });
    }    
    
    playSomeSound('house');
    /*
    var menuLinks = document.getElementsByClassName('genre');
    for (var i = 0; i < menuLinks.length; i++){
        menuLinks(i).onclick = function(e){
            e.preventDefault();
            playsomesound(menuLinks.innerHTML);
        };
    }
    */ 
    

    http://jsfiddle.net/iambnz/yy8hwg76/

    【讨论】:

      猜你喜欢
      • 2020-07-23
      • 1970-01-01
      • 2017-07-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-06-29
      • 1970-01-01
      相关资源
      最近更新 更多