ios - 卡顿和轨道开始多次播放

标签 ios swift spotify

在使用 Spotify 播放器时,我们偶尔会遇到持续大约 10 秒的卡顿。虽然有几个方面对我来说似乎不正常,但最一致的迹象是,我们不止一次地点击了 didStartPlayingTrack 委托(delegate)方法,即使我们只告诉玩家玩一次。有谁知道什么会导致这种情况发生?

重要提示:这是 spotify-ios-sdk 版本 0.21

日志示例:

audioStreaming(_:didReceive:withName:)[L:412]: didReceiveEvent: Optional("SPPlaybackNotifyTrackDelivered") // Last track ended
audioStreaming(_:didReceive:withName:)[L:412]: didReceiveEvent: Optional("SPPlaybackNotifyAudioDeliveryDone")
audioStreaming(_:didReceive:withName:)[L:412]: didReceiveEvent: Optional("SPPlaybackNotifyPause")
audioStreaming(_:didReceive:withName:)[L:412]: didReceiveEvent: Optional("SPPlaybackNotifyMetadataChanged")
movePlayerPosition(_:completion:)[L:180]: seek successful to 0.842
audioStreaming(_:didReceive:withName:)[L:412]: didReceiveEvent: Optional("SPPlaybackNotifyMetadataChanged")
13:13:50 audioStreaming(_:didStartPlayingTrack:)[L:377]: didStartPlayingTrack: Optional("So Far Away (Live) - Live")
audioStreaming(_:didReceive:withName:)[L:412]: didReceiveEvent: Optional("SPPlaybackNotifyTrackChanged")
audioStreaming(_:didReceive:withName:)[L:412]: didReceiveEvent: Optional("SPPlaybackEventAudioFlush")
audioStreaming(_:didReceive:withName:)[L:412]: didReceiveEvent: Optional("SPPlaybackNotifyPlay")
audioStreaming(_:didReceive:withName:)[L:412]: didReceiveEvent: Optional("SPPlaybackNotifyMetadataChanged")
audioStreaming(_:didReceive:withName:)[L:412]: didReceiveEvent: Optional("SPPlaybackNotifyMetadataChanged")
audioStreaming(_:didReceive:withName:)[L:412]: didReceiveEvent: Optional("SPPlaybackNotifyContextChanged")
13:14:01 audioStreaming(_:didStartPlayingTrack:)[L:377]: didStartPlayingTrack: Optional("So Far Away (Live) - Live")
audioStreaming(_:didReceive:withName:)[L:412]: didReceiveEvent: Optional("SPPlaybackNotifyTrackChanged")
audioStreaming(_:didSeekToPosition:)[L:474]: did seek to position: 0.001
audioStreaming(_:didReceive:withName:)[L:412]: didReceiveEvent: Optional("SPPlaybackEventAudioFlush")

有什么办法可以防止这种口吃的发生吗?

更新

我已经切换到版本 25,但我仍然遇到这个问题。我在口吃日志中发现的一个显着特征是,在大多数歌曲开始时,除非特别要求,否则我不会得到 didSeekToPosition 委托(delegate);但是,当遇到口吃时,口吃开始时我会看到以下内容:

audioStreaming(_:didStartPlayingTrack:)[L:377]: didStartPlayingTrack
audioStreaming(_:didSeekToPosition:)[L:474]: did seek to position: 0.001

明确一点,只有一种方法调用playSpotifyUri;然而,这个 didStartPlaying 委托(delegate)被多次命中。

最佳答案

iOS SDK 现在是 Beta 25 版本,你考虑过升级吗?我建议这样做,看看它是否能解决您的问题。

我需要查看您的具体实现以便进行调试。

关于ios - 卡顿和轨道开始多次播放,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43878539/

相关文章:

ios - 未安装应用程序时,branch.io 链接会不停地重定向

ios - 快速从原始图像获取宽高比填充图像

spotify - 如何在 spotify 应用程序 API 中创建类似 "carousel"的小部件?

ios - 如何使用 Swift 和 iOS 使用 Facebook 身份验证注销用户?

ios - 为什么无法使用 Google Firebase 存储中的下载 URL 打开上传的文件?

swift - 一对多 webrtc

ios - UIView、Swift 上的深度页面转换

audio - 我可以使用Spotify API将高频信号嵌入到播放列表中吗

embed - 使 Spotify 嵌入响应

ios - 如何仅存储没有时区和实际时间的日期