SPPlaybackManager를 사용하여 트랙을 재생하고 있지만 작지만 중요한 재생 측면에서는 힘든 시간을 보내고 있습니다. 트랙이로드 및 스트리밍 중이지만 SPAsyncLoading의 콜백 함수가 호출 된 후 .25 - 1.25 초 후에 재생되기 시작합니다. 트랙이 실제로 재생되기 시작하는시기를 확인하기 위해 여러 가지 방법을 시도했지만, 모두 SPAsyncLoading 콜백 (playbackManager.isPlaying, playbackManager.currentTrack 등)이 호출 된 순간 재생이 시작되었음을 나타냅니다. 실제로 앞서 언급 한 간단한 대기 시간 후에 SPSTyncLoading 콜백에서 10 초 동안 실행되도록 NSTimer를 설정하고 10 초 후에 playbackManager.trackPosition을 가져 와서 차이를 찾는 것으로 재생이 시작됩니다. TL; DR - CocoaLibSpotify가 시작될 때 재생이 실제로 시작되지 않습니다.SPPlaybackManager - 대기 시간 및 로딩
다음과 같은 몇 가지 문제가 발생합니다. 가장 먼저 중요한 점은 콜백과 재생 사이에 어떤 오프셋이 있었는지에 따라 노래가 맨 끝에 잘 리게됩니다. 둘째, UX 관점에서 볼 때 SPAsyncLoading 콜백과 실제 재생 (즉, 트랙이 재생 준비 중이지만 아직 재생되지 않음) 사이의 "데드 스페이스"에 있음을 사용자에게 알릴 수 있어야합니다. 이러한 문제를 우회하거나 해결하는 방법에 대한 모든 권장 사항은 높이 평가되었습니다!
매우 유용한 답변입니다. 놀랍게도 우리는 재생을 위해'SPAsyncLoading'을 사용하면 안된다는 것을 알았습니다. 대신'preloadTrackForPlayback'을 호출해야합니까? –
수정. SPAsyncLoading은 메타 데이터 전용이며,''프로토콜을 공개적으로 준수하는 클래스에서만 작동합니다. -'SPPlaybackManager'는 이러한 클래스 중 하나가 아닙니다. 'preLoadTrackForPlayback'은 필수는 아니지만'playTrack :'호출과 당신이 여유 시간이 있다면 오디오를 가져 오는 것 사이의 대기 시간을 줄여줍니다 (예를 들어, 이전 트랙이 끝나기 등). 'preloadTrackForPlayback'을 호출하면'playTrack :'이 바로 뒤 따르기 때문에 속도가 향상되지 않습니다. –
iKenndac
'playTrack :'을 단독으로 호출하면 "리소스가 아직로드되지 않았습니다."라는 오류가 발생하므로 재생을 시작하기 전에 필요한 데이터를 얻는 방법에 대한 혼란이 있습니다. 내가 놓친 게 있니? 모든 도움에 감사드립니다. –