标签: apple-musickit

如何将 Apple MusicKit 添加到 React Native 应用程序?

如何在 React Native 应用程序中实现 Apple MusicKit,包括 Apple 身份验证?

react-native expo apple-musickit

8
推荐指数
0
解决办法
364
查看次数

SSAccountStore:无法获取本地帐户。错误=错误域=SSErrorDomain代码=100

我无法访问用户 Apple Music。我得到的错误是

 [core] "Error returned from daemon: Error Domain=com.apple.accounts Code=9 "(null)""
2019-02-04 19:14:37.250467+0900 SSAccountStore: Failed to fetch the backing accounts. error = Error Domain=com.apple.accounts Code=9 "(null)"
2019-02-04 19:14:37.252008+0900 [core] "Error returned from daemon: Error Domain=com.apple.accounts Code=9 "(null)""
2019-02-04 19:14:37.252051+0900  SSAccountStore: Failed to fetch the backing accounts. error = Error Domain=com.apple.accounts Code=9 "(null)"
2019-02-04 19:14:37.253604+0900  SSAccountStore: Unable to get the local account. error = Error Domain=SSErrorDomain Code=100 "Cannot connect to iTunes Store" UserInfo={NSLocalizedDescription=Cannot connect to iTunes Store}
Run Code Online (Sandbox Code Playgroud)

然而,这段代码的奇怪部分是我还能够检索音乐用户令牌。有什么我想念的吗?任何帮助表示赞赏。

    static func …
Run Code Online (Sandbox Code Playgroud)

swift apple-musickit

7
推荐指数
1
解决办法
1572
查看次数

播放(非库)Apple Music内容-请求失败

我正在尝试使用以下代码播放专辑…

let predicate = MPMediaPropertyPredicate(value: "1459938538", forProperty: MPMediaItemPropertyAlbumPersistentID)
let iCloudPredicate = MPMediaPropertyPredicate(value: true, forProperty: MPMediaItemPropertyIsCloudItem)
let query = MPMediaQuery.albums()
query.filterPredicates = [predicate, iCloudPredicate]

let mp = MPMusicPlayerController.applicationMusicPlayer
mp.setQueue(with: query)
mp.play()
Run Code Online (Sandbox Code Playgroud)

但是它失败了

[SDKPlayback] -[MPMusicPlayerController prepareToPlay] timeout

[MediaRemote] MRC <MPCPlayerPath: route=<MPAVEndpointRoute: 0x280f1a280 name=iPhone uid=LOCAL> origin=iPhoneID bundleID=com.apple.MediaPlayer.RemotePlayerService playerID=MPMusicPlayerApplicationController>: Undo optimistic state [failed] command=Play error=Error Domain=MPCPlayerRequestErrorDomain Code=1000 "Failed to send command 0 (MRMediaRemoteCommandHandlerStatus = 1)" UserInfo={NSDebugDescription=Failed to send command 0 (MRMediaRemoteCommandHandlerStatus = 1), MPCPlayerErrorKeyMediaRemoteCommandHandlerStatus=1}

[SDKPlayback] -[MPMusicPlayerController play] completed error: Error Domain=MPCPlayerRequestErrorDomain Code=1000 "Failed to …

mpmusicplayercontroller mpmediaquery ios swift apple-musickit

7
推荐指数
1
解决办法
142
查看次数

获取库播放列表 Artwork Apple Music API

我目前正在尝试阅读所有用户库播放列表。我需要的是以下内容:ID、名称、描述、歌曲和艺术品。端点"https://api.music.apple.com/v1/me/library/playlists?limit=100"返回以下响应:

{
  "data": [
    {
      "id": "p.oOzAa4gIlaQaBVx",
      "type": "library-playlists",
      "href": "\/v1\/me\/library\/playlists\/p.oOzAa4gIlaQaBVx",
      "attributes": {
        "name": "Drake",
        "description": {
          "standard": ""
        },
        "hasCatalog": true,
        "canEdit": true,
        "playParams": {
          "id": "p.oOzAa4gIlaQaBVx",
          "kind": "playlist",
          "isLibrary": true,
          "globalId": "pl.u-Zmblx9rU02m2DXJ"
        },
        "dateAdded": "2017-10-30T21:39:45Z"
      }
    },
etc...
Run Code Online (Sandbox Code Playgroud)

正如您所看到的,尽管 API 文档将艺术作品指定为属性 ( https://developer.apple.com/documentation/applemusicapi/libraryplaylist/attributes),但艺术作品属性并不存在,我尝试使用,?include=artwork即使它是属性而不是关系,但没有奏效。任何想法如何检索艺术品?如果我无法从苹果音乐 API 获得它,还有其他方法可以获得艺术品吗?我已经坚持了一段时间,所以任何帮助表示赞赏!

android json apple-music apple-musickit

7
推荐指数
1
解决办法
546
查看次数

Apple Music API 获取当前正在播放的歌曲

我正在使用 Spotify 和 Apple Music API 开发一个应用程序。Spotify 有一个端点称为/me/player/currently-playing返回登录用户当前播放的歌曲。Apple Music API 是否有等价物?

我知道 Apple Music API 有一个“最近播放”端点,但我不确定这个端点是否会返回当前正在播放歌曲的用户。我是否可以使用其他服务来实现 Apple Music 的这一目标?

spotify apple-music apple-musickit

7
推荐指数
1
解决办法
418
查看次数

Apple Music API - 我应该使用哪种API来搜索歌曲?

我试图了解Apple Music API的工作原理,并坚持如何搜索歌曲并获取其ID.我在Google上做了一些研究,大多数人建议使用iTunes Search API.但是,Apple Music API还提供了自己的搜索API.我尝试了这两个,两者都可以返回正确但非常不同的结果.此外,并非iTunes Search API的所有结果都可播放.所以我猜测使用iTunes搜索是一种获取跟踪ID的旧方法.在iOS 11之后,我们应该使用Apple Music搜索API.有人肯定这个吗?

(对于不可播放的iTunes搜索结果,我在URL中附加了s = [countryID],我可以从返回的结果中看到正确的国家/地区,并且isStreamable = 1)

另外,我注意到,使用苹果音乐API,我们需要追加店面国家代码的URL,国家代码仅在MusicKit此前的iOS 11个可用的iOS 11后,我们只能从MusicKit获得国家ID,所以有没有办法将国家ID转换为国家代码?

ios apple-music apple-musickit

6
推荐指数
0
解决办法
520
查看次数

我试图获取苹果音乐API的用户令牌,我已经从python终端命令生成了有效的开发人员令牌

我在我的IOS应用程序中第一次使用apple music api.我已经在python命令的帮助下生成了开发人员令牌.

每次请求用户令牌时都会收到错误"请求用户令牌时发生错误:操作无法完成.(SKErrorDomain错误7.)"

我的开发人员令牌看起来像"esfd .......................................... ....................................... MPO"

if #available(iOS 11.0, *)

{

 SKCloudServiceController().requestUserToken(forDeveloperToken: 
 developerToken, completionHandler: { (userToken, error) in

    print("An error occurred when requesting user token: \(error!.localizedDescription)")

})

}

else 
{    

SKCloudServiceController().requestPersonalizationToken(forClientToken: developerToken, withCompletionHandler: { (userToken, error) in

 print("An error occurred when requesting user token: \(error!.localizedDescription)")

})


}
Run Code Online (Sandbox Code Playgroud)

请有人帮帮我....

ios swift apple-musickit

6
推荐指数
1
解决办法
803
查看次数

如何获取Apple Music播放列表的ID

我目前正在制作一个快捷应用,该应用可以通过MusicKit / Apple Music API为用户创建播放列表。它将在用户库中创建此播放列表,并返回格式的ID p.XXXXXXXX。然后,我想打开iOS音乐应用并通过打开itunes.apple.com/us/playlist/XXXXXX?app=music链接向用户显示新创建的播放列表。但是,此URL的ID均为格式pl.XXXXXXXX。Mac iTunes应用程序具有一个Share Playlist按钮,可以获取pl.XXXXXXX播放列表的ID,但是当Apple Music API仅返回ID时,如何快速获取此ID p.XXXXXXXXXX?谢谢!

ios swift apple-music apple-musickit

6
推荐指数
1
解决办法
556
查看次数

Apple Music API - 如何获取用户标识符?

从 Apple Music API 获取音乐令牌后,我试图检索用户的信息。似乎 /me 端点不适用于店面以外的查询(https://api.music.apple.com/v1/me/storefront)。

问题是,我需要用唯一的 ID 来标识每个用户,所以我需要检索任何好的信息来做到这一点(例如,电子邮件地址可能是一个很好的起点)。

从 Apple Music API 开发人员页面,我找不到任何端点可以这样做。有什么我想念的吗?

谢谢 :)

api apple-music apple-musickit

6
推荐指数
1
解决办法
360
查看次数

如何在 MusicKit 中检测歌曲的结尾?

我试图在我的应用程序中使用 Apple 的 Music Kit 来听音乐。我的问题是播放的第一首歌曲会不断重复。使用以下代码正确播放第一首歌曲:

let mediaArray = [songsApple?[songNumber!]] 
let playableColledction = MPMediaItemCollection.init(items: mediaArray as! [MPMediaItem]) 

applicationMusicPlayer.setQueue(with: playableCollection) 
applicationMusicPlayer.play() 
self.activateAudioSession 
Run Code Online (Sandbox Code Playgroud)

activateAudioSession 方法是:

 do {
   try audioSession.setCategory(AVAudioSessionCategoryPlayback) 
   try audioSession.setActive(true) 
 }
 catch let error {
   print(error.localizedDescription) 
 } 
Run Code Online (Sandbox Code Playgroud)

为了检测歌曲的结尾,我使用了 Apple Music 文档中的以下观察者:

applicationMusicPlayer.beginGeneratingPlaybackNotications() 

NotificationCenter.default.addObserver(self, #selector(didFinishSong), name: Notification.Name.MPMusicPlayerControllerNowPlayingItemDidChange, object: nil) 
Run Code Online (Sandbox Code Playgroud)

didFinishSong 方法用于从songsApple 数组中获取下一首要播放的歌曲的songNumber。然后将此信息传递回播放歌曲的方法以获取 mediaArray。但是,现在,当歌曲播放结束时,didFinishSong 不会被调用,而是从头开始重复播放。

我在检测歌曲结尾时做错了什么吗?还有另一种方法吗?我也尝试使用计时器,但由于某种原因,只要应用程序进入后台,计数就会不准确,它就会停止计数。

预先感谢您提供的任何帮助。如果您需要更多信息,请不要犹豫,我会澄清更多。

audio-player mpmusicplayercontroller swift apple-music apple-musickit

5
推荐指数
0
解决办法
494
查看次数