gpt4 book ai didi

url - 如何访问 SoundCloud 公共(public)流?

转载 作者:行者123 更新时间:2023-12-04 14:41:19 25 4
gpt4 key购买 nike

如何从 SoundCloud URL 播放轨道,例如,我从查询的 xml 响应中获得

<stream-url>https://api.soundcloud.com/tracks/31164607/stream</stream-url>

我应该认为它会很容易:
https://api.soundcloud.com/tracks/31164607/stream&client_id=my_client_id

但我得到
<error>401 - Unauthorized</error>

我要做的就是在 Silverlight MediaElement 中使用它,所以我只需要为 MediaElement 的 Source 属性设置一些 url。

我检查了我大约 2 年前写的一个应用程序,然后,对于公共(public)音轨,访问流 url 就像这样简单:
http://api.soundcloud.com/tracks/18163056/stream&consumer_key=MY_CONSUMER_KEY

但是,这似乎不再起作用。

例如,我在 C# 中所要做的就是:
MediaElement me = new MediaElement();
me.Source= new Url("http://api.soundcloud.com/tracks/18163056/stream&consumer_key=MY_CONSUMER_KEY");
me.Play();

任何提示将不胜感激。

我在 Microsoft 论坛上有一个回复,似乎暗示 SoundCloud 可能无法在播放开始前不消耗整个流的情况下流式传输到 Windows 8 Metro 设备 - 这非常令人担忧,似乎意味着要使身份验证成为可能,它必须完全在使用 header 的 url 查询字符串中完成:

(以下回复是对以下问题的回答:'我可以使用 MediaElement 通过 http 访问音频流,但是我需要通过 https 访问它,其中我需要将 oAuth 信息添加到初始的 header 要求。
使用 MediaElement 时这是如何完成的,如果无法完成,在 Metro 8 中使用需要 header 身份验证才能流式传输的音频提要的解决方法是什么?')

"Direct access to the underlying network stream is not currently permitted by the MediaElement. Because of this there is currently no way to modify the header of the HTTP request to include any additional authentication information. That said, you do have control over the URL. You could theoretically setup an HTTP proxy service that translated the HTTP GET request parameters into the necessary oAuth credentials. Keep in mind that this is just a theoretical workaround. You may find different behavior in practice. Another theoretical workaround would be to handle the oAuth yourself via a raw stream socket and pass the retuned media data to the MediaElement via "Set Source" and a "Random Access Stream". Please keep in mind that this method has major limitations. in order to use a "Random Access Stream" with the ME you need to make sure all of the data is available before passing it to the ME."



对于仅免费分发的应用程序,代理服务不可扩展,因为每个流都需要通过代理来。而原始流套接字,虽然绕过了这个问题,但意味着在整个文件下载之前无法开始播放 - 这违反了所有当前的 UX(用户体验)准则。

因此,再一次,如果有人有任何提示或有关如何在查询字符串中而不是使用 header 中实现整个身份验证的信息,我将不胜感激!

最佳答案

我有点困惑你是指公共(public)轨道还是私有(private)轨道?如果它是公共(public)轨道,那么您不需要发送任何身份验证信息,只需发送您的客户端 ID。

当我请求 https://api.soundcloud.com/tracks/31164607/stream?client_id=YOUR_CLIENT_ID然后我得到一个 302 重定向到正确的 mp3 流。

关于url - 如何访问 SoundCloud 公共(public)流?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11801518/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com