所以我创建了一个允许用户从spotify流式播放歌曲的应用程序,我在播放时没有问题并且停止使用spotify播放器。但是,我有问题要暂停和恢复这首歌。
这是我的逻辑:
这是我的代码:
var currentOffset = User.spotifyPlayer!.currentPlaybackPosition
println(currentOffset)
var spotifyTrackUrl : NSURL = NSURL(string: self.spotifyTrackUri!)!
User.spotifyPlayer!.playURIs([spotifyTrackUrl], fromIndex: 0, callback: { (error : NSError!) -> Void in
if error != nil {
println(error)
}else{
if User.spotifyPlayer!.isPlaying == true {
User.spotifyPlayer!.seekToOffset(currentOffset, callback: { (error : NSError!) -> Void in
if error != nil {
println("rene 3")
println("spotify seek error : \(error)")
}
sender.setImage(UIImage(named: "playicon.png"), forState: UIControlState.Normal)
println("rene 4")
})
}
}
})
我总是遇到以下错误:
spotify seek error:由于未指定的问题,操作失败。
我使用swift,但如果你使用obj-c,请给我任何建议并不重要
答案 0 :(得分:1)
我认为你不需要使用seekToOffset
暂停和恢复一首歌,你只需要下面的方法:
if self.player?.isPlaying == true {
self.player?.setIsPlaying(false, callback: nil)
}else{
self.player?.setIsPlaying(true, callback: nil)
}
答案 1 :(得分:0)
如果您只想暂停和恢复播放器,则应使用 SPTAudioStreamingController 的内置方法,例如:
allow_any_instance_of(Paperclip::Storage::S3).to receive(:copy_to_local_file) do |style, local_dest_path|
# write a file here, or do anything you like
end
如果您尝试显示跟踪进度的可视部分,我建议使用类似NSTimer的内容并更新视图,例如:
[self.player setIsPlaying:!self.player.isPlaying callback:nil];
答案 2 :(得分:0)
要恢复,您应该使用以下方法:
playURIs:withOptions:回调:
这是一个简单的例子:
NSURL *trackURI = [NSURL URLWithString:uriString];
float startTime = 34.3;
SPTPlayOptions *options = [[SPTPlayOptions alloc] init];
[options setStartTime:startTime];
[self.spotifyPlayer playURIs:[NSArray arrayWithObject:trackURI] withOptions:options callback:^(NSError *error) {
if (error != nil) {
NSLog(@"*** Starting playback got error: %@", error);
return;
} else {
NSLog(@"Playing");
}
}];