【问题标题】:cocoalibspotify - didencounterstreamingerror not called when there is no internet connectioncocoalibspotify - 没有互联网连接时不调用 didencounterstreamingerror
【发布时间】:2014-02-12 05:56:50
【问题描述】:

我只是想在流因连接问题而停止时更新我的​​ UI,但在没有连接时不会调用 didencounterstreamingerror。我知道委托设置正确,因为调用了其他播放委托方法。

【问题讨论】:

    标签: ios spotify cocoalibspotify-2.0


    【解决方案1】:

    这是预期的行为。 -didEncounterStreamingError: 适用于后端由于某种原因根本无法提供该轨道的情况,并且非常罕见。您会注意到官方 Spotify 客户端在这种情况下也不会出错 - 他们只是暂停并等待曲目恢复,同时单独通知用户连接有问题。

    网络连接中断不是错误状态 - 这是一个暂时的暂停。在这种情况下,您应该在SPSession 上观看connectionState 并通知用户他们的连接已断开。您的应用程序应该模仿官方客户端,并在连接恢复时音频数据再次开始进入时恢复播放。

    【讨论】:

    • 是否有一种好方法可以检测由于网络问题等原因导致缓冲区耗尽而导致流暂停的时间?也许通过 SPPlaybackManager?
    • 如果音频自行暂停并且您没有收到播放令牌丢失消息,这是因为带宽不足。否则,我几乎在我的回答中描述了它 - 观察您的 SPSessionconnectionState 属性,如果在连接状态为离线时播放自行暂停,那是因为带宽不足。
    • 好的,再问一个问题,我就不再打扰你了。当缓冲区因带宽不足而耗尽时,isPlaying 属性不会更改。无论如何,如果连接丢失,是否可以检测音乐何时暂停与仍在从缓冲区播放?
    • 注意你的缓冲区——如果它是空的并且你没有得到更多的数据,你知道的。如果您使用的是SPPlaybackManager,则需要对其进行自定义,因为这不适用于这种情况。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-23
    • 1970-01-01
    • 2013-12-14
    • 1970-01-01
    • 2014-10-10
    • 1970-01-01
    相关资源
    最近更新 更多