【问题标题】:How to get MPMediaItem (song) listening times (dates)如何获取 MPMediaItem(歌曲)收听时间(日期)
【发布时间】:2014-04-30 21:44:58
【问题描述】:

我想获取某段时间内歌曲的收听时间。使用MPMediaItemPropertyLastPlayedDate,我只得到最后一次播放歌曲的日期,所以如果我每天多次播放歌曲,只有最后一次才算。 基本上,我想做的是在某个时期(例如最后两天)获取用户的收听历史。 还有MPMediaItemPropertyPlayCount,我得到了总的播放次数。

有什么想法吗?

谢谢。

【问题讨论】:

    标签: ios mpmediaitem mpmediaquery


    【解决方案1】:

    我现在正在处理这个问题。我的(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 秒。就我而言,我只对“自从”以来的游戏历史感兴趣

    【讨论】:

    • 附言。抱歉,我的回复晚了大约一年,但我今天才开始处理这个问题。您可能已经自己弄清楚了。我没有在网上找到很多方法,所以这可能仍然对某人有所帮助
    【解决方案2】:

    使用它来获取 MPMediaItem 的持续时间。

    MPMediaItem *song;
    NSNumber *duration= [song valueForProperty:MPMediaItemPropertyPlaybackDuration];
    

    【讨论】:

    • 我对持续时间不感兴趣......而只是每个歌曲项目的播放时间和日期
    猜你喜欢
    • 2021-09-26
    • 2015-02-22
    • 1970-01-01
    • 2023-03-11
    • 1970-01-01
    • 1970-01-01
    • 2013-12-09
    • 2020-06-02
    相关资源
    最近更新 更多