我在从 SoundCloud 流式传输少量轨道时遇到问题。
我正在使用 AVPlayer/AVPlayerItem 流式传输 SoundCloud 轨道,这与 SoundCloud 的大多数轨道完美配合,但最近一些较新的 SoundCloud 轨道无法播放。我试过收听所有的 AVPlayerItem 通知,但没有一个报告错误。
我也尝试过使用 MPMoviePlayerViewController 和 MPMoviePlayerController 流式传输这些轨道。他们可以很好地播放其他轨道,但也无法播放这些精选的轨道。
我什至尝试在我的计算机浏览器中播放它们。有了工作轨道,我得到了一个浏览器内的音频播放器,轨道开始流式传输。当我尝试有问题的轨道时,什么也没有发生 - 没有浏览器内的音频播放器,也没有任何类型的音频流。当我去查看源代码时,我也什么也没看到。
我最初的假设是这些流是空的,或者不知何故无法正常工作,但是当我尝试通过 SoundCloud 的 iOS 应用播放相同的轨道时,它们播放得很好。这表明有一种方法可以使其正常工作,但他们可能可以访问效果更好且不通过公共(public) API 分发的流式 url。
以下是在我的应用中无法运行的轨道示例:
http://soundcloud.com/cyrilhahn/cyril-hahn-javeon-breaking
这是对该轨道的 api 调用:
http://api.soundcloud.com/tracks/132839787?client_id=YOUR_CLIENT_ID
(对任何不便深表歉意,但您需要使用有效的 SoundCloud api 客户端 ID 填写 YOUR_CLIENT_ID,我无法提供我的。)
其中包含一个“stream-url”键和以下 url 以流式传输轨道(抱歉,我不得不缩写以下链接,因为我只能发布 2 个链接,因为信誉为 0):
...com/tracks/132839787/stream?client_id=YOUR_CLIENT_ID
对轨道的 API 调用甚至包含一个“可流式” key ,即“真”。
因为我尝试用于流式传输的原生 iOS 类没有报告任何错误,所以我真的不知道该怎么做。有人向我提到的唯一一件事是,这些轨道可能是 iOS 不支持的 RTMP 流。
这是另一个 stackoverflow 帖子,其中有一个类似且可能相关的问题,但还没有回复:
SoundCloud track.stream_url not working for some of the tracks
Best Answer-推荐答案 strong>
正如您所建议的,流 url 不适用于所有轨道的原因是某些轨道专门使用 (RTMP/HLS) 进行流式传输。
SoundCloud 正在为此更新 SDK 和文档,但这意味着 Cocoa SDK 尚未更新。我不确定是否计划对 API 进行任何更改以反射(reflect)流式传输类型,但我已经在团队中提到了这个问题。
关于ios - 无法流式传输 SoundCloud 的某些轨道,我们在Stack Overflow上找到一个类似的问题:
https://stackoverflow.com/questions/21715079/
|