如何用swift播放歌曲

时间:2017-04-16 04:38:49

标签: ios swift media-player

我想知道什么时候在音乐应用上播放一首歌并获取其信息。但我不想从图书馆获取所有歌曲,这只是自应用开始扫描以来播放的歌曲。

就像你玩的东西,然后你打开应用程序,它扫描你播放的内容。

我正在搜索这个,但一无所获,我不知道从哪里开始实现这个。

1 个答案:

答案 0 :(得分:2)

首先,将Info.plist密钥添加到import MediaPlayer @IBAction func getSongs(_ sender: Any) { let yesterday = Calendar.current.date(byAdding: .day, value: -1, to: Calendar.current.startOfDay(for: Date()))! // Check for permissions switch MPMediaLibrary.authorizationStatus() { case .authorized, .restricted: fetchSongPlayed(since: yesterday) case .notDetermined: MPMediaLibrary.requestAuthorization { _ in let auth = MPMediaLibrary.authorizationStatus() if auth == .authorized || auth == .restricted { self.fetchSongPlayed(since: yesterday) } } case .denied: print("No access to the Media Library") } } func fetchSongPlayed(since date: Date) { let query = MPMediaQuery.songs() var results = [MPMediaItem]() if let songs = query.items { results = songs.filter { ($0.lastPlayedDate ?? Date.distantPast) > date } } else { print("Can't fetch songs") } // Now do whatever you want with results // It's an array of MPMediaItem print(results.count) } ,并说明您需要访问用户媒体库的原因

然后您可以使用以下代码找到自某段时间以来播放的所有歌曲:

export default MyComponent // import MyComponent
export MyComponent // import { MyComponent }

还有一个提示:将一些音乐从iTunes同步到您的设备,因为模拟器没有任何默认值。模拟器有http://us3.php.net/manual/en/language.oop5.object-comparison.php#98725,但在设备上测试更容易。