【问题标题】:why doesn't Chrome stream a song using SoundCloud API V3为什么 Chrome 不使用 SoundCloud API V3 流式传输歌曲
【发布时间】:2016-02-25 15:19:42
【问题描述】:

我正在尝试使用 SoundCloud api 流式传输歌曲,但显然它无法在 Chrome 中播放。但它适用于其他浏览器。

SC.initialize({
  client_id: '65243ec784b284f1d8a8f950312240fa',
  redirect_uri: 'http://example.com/callback'
});

SC.stream('/tracks/293').then(function(player) {
  player.play();
});

JSFIDDLE

有什么让它在 Chrome 中工作的想法吗?

【问题讨论】:

    标签: javascript google-chrome audio soundcloud soundmanager2


    【解决方案1】:

    open Github issue 上查看我的解决方案(为方便起见,代码粘贴在下面)。

    如果您使用 SoundManager2,则在 dom 准备好时调用 setup。

    不要使用 SoundCloud api 的流函数,而是调用 SC.get,然后使用 createSound() 在 SoundManager 中创建一个声音对象,传入刚刚抓取的轨道的 stream_url。

    SC.get('/users/711016/tracks').then(function(tracks) {
        var sound = soundManager.createSound({
            id: 'mySound',
            url: tracks[0].stream_url + "?client_id=YOUR_CLIENT_ID",
            stream: true
        });
        sound.play();
    });
    

    我想您尝试播放的曲目的 api 路径可能与我的不同。

    【讨论】:

      【解决方案2】:

      这是一个known compatibility issue,由于 Chrome 的 Flash 版本。除了禁用 Flash 或使用不同版本的 SDK 来查看哪个版本适用于您的特定 Chrome 版本之外,您几乎无能为力。

      【讨论】:

        【解决方案3】:

        正如 JAL 所说,不幸的是,这已为人所知,而且似乎没有解决办法。

        相反,我建议使用他们的小部件 API 创建自定义 iFrame(如果需要,您可以使其不可见),然后使用 .load() 方法加载您想要的任何轨道。你可以阅读here

        小部件 API 非常好,因为它带有一堆非常有用的事件侦听器,具体取决于您在做什么。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2014-03-10
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多