Swift MPMusicLayerController设置队列和存储播放索引?
我对音乐播放器有问题,当我使用存储id设置队列并调用方法Swift MPMusicLayerController设置队列和存储播放索引?,swift,xcode,audio-player,Swift,Xcode,Audio Player,我对音乐播放器有问题,当我使用存储id设置队列并调用方法play()它的播放第一首曲目时,如何使它播放队列的X索引 var ids:[String] = [] for song in self.queue { ids.append(String(song.epf_song_id)) } print("ids \(ids.count)") applicationMusicPlayer.setQueueWithStoreIDs(ids)
play()
它的播放第一首曲目时,如何使它播放队列的X索引
var ids:[String] = []
for song in self.queue
{
ids.append(String(song.epf_song_id))
}
print("ids \(ids.count)")
applicationMusicPlayer.setQueueWithStoreIDs(ids)
applicationMusicPlayer.play()
我发现这个解决方案可能会帮助其他人,我应该使用
我就是这样解决这个问题的。。 MPMusicLayerController.SystemMusicLayer.prepareToPlay从未返回任何值。。。 所以我做了一个技巧来玩这个播放器,然后这个函数开始返回值。。。b/c如果出现错误,我必须导航到另一个屏幕,如果没有错误,我必须导航到播放器视图
if #available(iOS 10.1, *)
{
let floatVersion = (UIDevice.current.systemVersion as NSString).floatValue
MPMusicPlayerController.systemMusicPlayer.setQueue(with: "YourSongID");
if #available(iOS 11.1, *)
{
MPMusicPlayerController.systemMusicPlayer.play()
}
MPMusicPlayerController.systemMusicPlayer.prepareToPlay(completionHandler: {
(Eroror) in
if(Eroror == nil)
{
if(floatVersion < 11.1)
{
MPMusicPlayerController.systemMusicPlayer.pause()
}
}
else
{
}
})
}
如果可用(iOS 10.1,*)
{
让floatVersion=(UIDevice.current.systemVersion作为NSString)。floatValue
MPMusicPlayerController.systemMusicPlayer.setQueue(带:“YourSongID”);
如果可用(iOS 11.1,*)
{
mpMusicLayerController.SystemMusicLayer.play()
}
MPMusicLayerController.SystemMusicLayer.prepareToPlay(完成处理程序:{
(Eroror)在
如果(Eroror==nil)
{
如果(版本<11.1)
{
MPMusicLayerController.SystemMusicLayer.pause()
}
}
其他的
{
}
})
}
您能解释一下代码并在其周围添加更多细节以使其对未来的读者更有用吗?
if #available(iOS 10.1, *)
{
let floatVersion = (UIDevice.current.systemVersion as NSString).floatValue
MPMusicPlayerController.systemMusicPlayer.setQueue(with: "YourSongID");
if #available(iOS 11.1, *)
{
MPMusicPlayerController.systemMusicPlayer.play()
}
MPMusicPlayerController.systemMusicPlayer.prepareToPlay(completionHandler: {
(Eroror) in
if(Eroror == nil)
{
if(floatVersion < 11.1)
{
MPMusicPlayerController.systemMusicPlayer.pause()
}
}
else
{
}
})
}