30 lines
1.0 KiB
Swift
30 lines
1.0 KiB
Swift
import Foundation
|
|
import NowPlaying
|
|
|
|
@available(iOS 27.0, *)
|
|
struct SystemPlayerAttributes: RemoteMediaSessionAttributes {
|
|
let id: String
|
|
var title: String
|
|
var artist: String
|
|
var source: String
|
|
var artworkID: String?
|
|
var playing: Bool
|
|
var rate: Double
|
|
var position: Double
|
|
var duration: Double
|
|
var timestamp: Date
|
|
var capabilities: Capabilities
|
|
var volume: Double?
|
|
var hasSession: Bool
|
|
|
|
init(id: String, state: MediaState, now: Date = Date()) {
|
|
self.id = id
|
|
title = String(state.title.prefix(256)); artist = String(state.artist.prefix(256))
|
|
source = String(state.source.prefix(128)); artworkID = state.artworkId
|
|
playing = state.playbackStatus == "Playing"; rate = state.playbackRate
|
|
position = max(0, state.position(elapsed: 0) - state.startSeconds)
|
|
duration = max(0, state.endSeconds - state.startSeconds)
|
|
timestamp = now; capabilities = state.capabilities; volume = state.volume; hasSession = state.hasSession
|
|
}
|
|
}
|