Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/github/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Swift MPMusicLayerController设置队列和存储播放索引?_Swift_Xcode_Audio Player - Fatal编程技术网

Swift MPMusicLayerController设置队列和存储播放索引?

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)

我对音乐播放器有问题,当我使用存储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)
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
                    {

                    }
                })



            }