ConnectMusics 1.0.0

ConnectMusics 1.0.0

测试测试通过
语言语言 SwiftSwift
许可证 自定义
发布时间最后发布时间2017年2月
Swift版Swift版本3.0.1
SPM支持SPM

Guillaume Chieb Bouares维护。



 
依赖
Alamofire~> 4.3
SwiftyJSON>= 0
 

  • 作者
  • Shemana和Keena

ConnectMusics是一个框架,用于简化iOS上音乐提供商Web API的使用。您可以在以下位置查看一个示例应用程序: https://github.com/shemana/ConnectMusics-sample

特点

  • [x] 连接到Spotify API
  • [x] 连接到Apple Music API
  • [x] 获取Spotify的播放列表
  • [x] 从Spotify获取播放列表的曲目
  • [x] 获取在Apple Music中订阅的用户播放列表

要求

  • iOS 9.3
  • Swift 3.0+
  • XCode 8.2+

通讯

  • 如果您发现了一个错误,请打开一个问题。
  • 如果您有功能请求,请打开一个问题。
  • 如果您想要贡献,提交一个pull请求。

使用

简介

对于Spotify,您需要在API中注册您的应用程序。您可以通过以下链接中的步骤获得它: https://developer.spotify.com/web-api/tutorial/

Spotify

身份验证

一旦您拥有了客户端ID和客户端密钥,在viewController中执行:

ConnectMusics.sharedInstance.initProvider(provider: .spotify, clientID: yourClientID, clientSecret: yourClientSecret, redirectURI: yourRedirectURI)

然后,在appDelegate中需要创建一个打开URL的函数

func application(_ app: UIApplication, open url: URL, options: [UIApplicationOpenURLOptionsKey : Any] = [:]) -> Bool {
        (ConnectMusics.sharedInstance.getInstance().getProvider(wantedProvider: .spotify) as! CMSpotifyProviderManager).login(withAuthenticationCode: url.absoluteString)
        return true
    }

播放列表

您可以检索当前用户播放列表,您将获得此用户关注的和高亮显示的播放列表。

var providerPlaylists:[CMPlaylist] = []
func viewDidLoad() {
        super.viewDidLoad()
        let spotify = ConnectMusics.sharedInstance.getInstance().getProvider(wantedProvider: .spotify)
        spotify?.getPlaylists(completionHandler: { (error :  String?) in
            if error == nil {
               self.providerPlaylists =  ConnectMusics.sharedInstance.getInstance().getPlaylistsByProviderType(providerType: .spotify)!
            }

        })
    }

您将获得播放列表列表。播放列表对象包含以下内容

  • 名称
  • 标识符
  • 所有者
  • 是否公开
  • 曲目(CMSpotifyTracks列表)

曲目

它类似于播放列表,但您需要您的播放列表ID和用户ID。

var currentPlaylist:CMPlaylist?
var providerTracks : [CMSpotifyTrack] = []

func viewDidLoad() {
        super.viewDidLoad()
        let spotify = ConnectMusics.sharedInstance.getInstance().getProvider(wantedProvider: .spotify) as! CMSpotifyProviderManager
        spotify.getMe { (error:String?) in
            spotify.getTracks(playlistToUpdate: self.currentPlaylist!, completionHandler: { (playlistUpdated : CMPlaylist?, error: String?) in
                if error == nil {
                    self.providerTracks = (playlistUpdated?.mediaItem as! CMSpotifyPlaylist).tracks
                }
            })
        }
    }

曲目对象包含以下内容

  • 专辑名称
  • 专辑链接
  • 专辑ID
  • 专辑图片
  • 链接地址
  • 标识符
  • 名称

Apple Music

您订阅的播放列表

您可以像这样检索播放列表

var providerPlaylists:[CMPlaylist] = []
func viewDidLoad() {
        super.viewDidLoad()
        let appleMusic = ConnectMusics.sharedInstance.getInstance().getProvider(wantedProvider: .appleMusic)
        appleMusic?.getPlaylists(completionHandler: { (error :  String?) in
            if error == nil {
               self.providerPlaylists =  ConnectMusics.sharedInstance.getInstance().getPlaylistsByProviderType(providerType: .appleMusic)!
            }

        })
    }

播放列表对象包含以下内容

  • 名称
  • 媒体项(将其转换为MPMediaPlaylist并导入MediaPlayer)
  • 提供商类型

信用

ConnectMusics由Shemana和Keenaa创建,您可以在这里关注我们的其他项目

许可

ConnectMusics在Apache许可证下发布。有关详细信息,请参阅LICENSE。