gpt4 book ai didi

ios - 如何获取 MPMediaItem(歌曲)收听时间(日期)

转载 作者:行者123 更新时间:2023-12-02 04:51:32 26 4
gpt4 key购买 nike

我想获取歌曲在特定时间段内的收听次数。使用 MPMediaItemPropertyLastPlayedDate 我只能获取上次播放歌曲的日期,因此如果我每天多次播放歌曲,则只有最后一次才算数。基本上,我想做的是获取用户在特定时期(例如最近两天)的收听历史记录。另外,通过 MPMediaItemPropertyPlayCount,我可以获得总体播放次数。

有什么想法吗?

谢谢。

最佳答案

我现在正在处理这个问题。我的(Swift 代码)是:

func getPlaysSince(since:NSDate, onSuccess: (tracks: [MediaItem])->(), onFail: (error: NSError?)->()) {

var rValue = [MediaItem]()
let timeInterval = since.timeIntervalSince1970
let query = MPMediaQuery.songsQuery()
let songs = query.items
Logger.logMessage(domain: "Data", level: .Minor, "Checking \(songs.count) songs for those since \(since)")
let then = NSDate()
for song in songs {
if let lastPlayedDate = song.lastPlayedDate {
if lastPlayedDate != nil {
if lastPlayedDate.timeIntervalSince1970 > timeInterval {
Logger.logMessage(domain: "Data", level: .Minor, "\(song.title) at \(lastPlayedDate)")
let item:MediaItem = MediaItem(mediaItem: song as! MPMediaItem)
rValue.append(item)
}
}
}
}
let taken = NSDate().timeIntervalSinceDate(then)
Logger.logMessage(domain: "Data", level: .Minor, "scanned in \(taken) seconds")

onSuccess(tracks: rValue)

}

我已经包含了整个函数,但关键行是查询、歌曲和歌曲的分配,然后是对lastPlayedDate 的检查。 lastPlayedDate 可以为零(之前从未播放过这首歌)。

这段代码正在对我的整个库中的 5K 首歌曲进行全面检查,大约需要 3 秒。就我而言,我只对“自”以来的游戏历史感兴趣

关于ios - 如何获取 MPMediaItem(歌曲)收听时间(日期),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23398553/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com