- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试向 SoundCloud API 发出请求。然后,当我收到响应时,我将 stream_url 设置为
这个有效:
但并非总是如此……例如,当您搜索“Bonobo”时,您可以毫无问题地播放前几首轨道。但是,当您尝试播放“London Grammar - Hey Now (Bonobo remix)”(第 7 个结果)时,它不会播放。它不会抛出任何错误。
我一直在修补 Chrome 的网络开发工具,在网络选项卡下我看到了正在发出的请求。我发现确实播放的轨道有一个简短的请求 Url,如下所示:
https://ec-media.sndcdn.com/vR5ukuOzyLbw.128.mp3?f10880d39085a94a0418a7ef69b03d522cd6dfee9399eeb9a522029f6bfab939b9ae57af14bba24e44e1542924c205ad28a52352010cd0e7dd461e9243ab54dc0f0bba897d
那些看起来不是这样的:
https://cf-media.sndcdn.com/8PCswwlkswOd.128.mp3?Policy=eyJTdGF0ZW1lbnQiOlt7IlJlc291cmNlIjoiKjovL2NmLW1lZGlhLnNuZGNkbi5jb20vOFBDc3d3bGtzd09kLjEyOC5tcDMiLCJDb25kaXRpb24iOnsiRGF0ZUxlc3NUaGFuIjp7IkFXUzpFcG9jaFRpbWUiOjE0MzM0Mjc2MDN9fX1dfQ__&Signature=cD-XVhnvQnIATkfrBDDVy0Q7996C8DymwxRLwBBduab0~L0MynF1ftcMky~21T8Q-gCZ2~dMK8dz7uVxvJTIJgXPxEZvhNtbvescMK6iFMg-xSAty-4OhJYjrIZJ2j8NE4uNA4Ml7MWbWcQw4KtUtpZitOQuguS3DPFDII3VF-dvzb2L~xG-G8Uu3uOnI1WhnAAfhf1QWMO7swwB89HtcCiuVBmfluG28ELrJEq-au8mqIMB3sLTno6nUuTtpHXR2ayXBsYcYLLJVXa3Ul8p1rhLS5XWHKWXY8xug4jwey27~C5PVAomK6Z5lJx-mz-0zYs4riUYtl0zACbZ1OfwTQ__&Key-Pair-Id=APKAJAGZ7VMH2PFPW6UQ
现在乍一看我认为这是一个编码问题,但是在 ajax url 周围包裹一个快速的 encodeURI() 并没有奏效。
此外,我不明白这些网址是从哪里来的。在我的代码中,我将我的 ajax 请求指向,例如:
https://api.soundcloud.com/tracks/140326936/stream?client_id=5c6ceaa17461a1c79d503b345a26a54e
因此,GET 请求中的请求 url(在 Chrome 的 webdev 工具中的“网络”下找到)对我来说毫无意义。 SoundCloud 是否将获取请求重定向到 CDN 主机?我注意到的另一件事是每次触发两个请求而不是一个。第一个始终被取消并包含“显示临时 header ”警告。我相信这是因为我设置了 crossOrigin = "anonymous",否则某些浏览器将不会加载内容。
我猜可能会导致问题的是,当 url 被设置为元素的 src 属性时,dancer.js 库中会触发 evenListener,它处理音频 Api 和播放(https://github.com/jsantell/dancer.js/)。可能是库中某处需要 encodeURI()。
我决定无论如何都要问这个问题,因为我不明白上面的请求 Urls 是如何形成的,为什么会触发两个而不是一个请求,以及为什么第一个总是被取消。
任何解决播放问题的提示都非常受欢迎......
最佳答案
当您运行请求时
https://api.soundcloud.com/tracks/140326936/stream?client_id=5c6ceaa17461a1c79d503b345a26a54e
您从服务器收到 HTTP 302 Found 响应,这是一个 URL 重定向 (http://en.wikipedia.org/wiki/HTTP_302)。这将导致您的浏览器从服务器返回的新 URL 加载,因此您会看到两个请求。服务器基本上说“是的,我知道在哪里可以找到那个文件,问问那边的那个人”。
我认为,一个有效而另一个无效的原因是 https://ec-media.sndcdn.com在 https://cf-media.sndcdn.com 时设置了访问控制 header 没有。这是服务器配置的问题,不幸的是,您无法从客户端控制任何内容。不知道这是否是 soundcloud 的蓄意举动,或者您是否可以向他们询问。
关于javascript - SoundCloud Api 重定向混淆和 Audio Api Streams,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30646525/
我正在尝试使用谷歌浏览器的 Trace Event Profiling Tool分析我正在运行的 Node.js 应用程序。选择点样本后,我可以在三种 View 之间进行选择: 自上而下(树) 自上而
对于一个可能是菜鸟的问题,我们深表歉意,但尽管在 SO 上研究了大量教程和其他问题,但仍找不到答案。 我想做的很简单:显示一个包含大量数据库存储字符串的 Android ListView。我所说的“很
我已经开始了一个新元素的工作,并决定给 Foundation 5 一个 bash,看看它是什么样的。在创建带有水平字段的表单时,我在文档中注意到的第一件事是它们使用大量 div 来设置样式。所以我在下
我有一个 Windows 窗体用户控件,其中包含一个使用 BeginInvoke 委托(delegate)调用从单独线程更新的第 3 方图像显示控件。 在繁重的 CPU 负载下,UI 会锁定。当我附加
我有一堆严重依赖dom元素的JS代码。我目前使用的测试解决方案依赖于 Selenium ,但 AFAIK 无法正确评估 js 错误(addScript 错误不会导致您的测试失败,而 getEval 会
我正在制作一款基于滚动 2D map /图 block 的游戏。每个图 block (存储为图 block [21][11] - 每个 map 总共 231 个图 block )最多可以包含 21 个
考虑到以下情况,我是前端初学者: 某个 HTML 页面应该包含一个沉重的图像(例如 - 动画 gif),但我不想强制客户缓慢地等待它完全下载才能享受一个漂亮的页面,而是我更愿意给他看一个轻量级图像(例
我正在设计一个小软件,其中包括: 在互联网上获取资源, 一些用户交互(资源的快速编辑), 一些处理。 我想使用许多资源(它们都列在列表中)来这样做。每个都独立于其他。由于编辑部分很累,我想让用户(可能
我想比较两个理论场景。为了问题的目的,我简化了案例。但基本上它是您典型的生产者消费者场景。 (我关注的是消费者)。 我有一个很大的Queue dataQueue我必须将其传输给多个客户端。 那么让我们
我有一个二元分类问题,标签 0 和 1(少数)存在巨大不平衡。由于测试集带有标签 1 的行太少,因此我将训练测试设置为至少 70-30 或 60-40,因此仍然有重要的观察结果。由于我没有过多地衡量准
我是一名优秀的程序员,十分优秀!