var songs = MPMediaQuery()
var localSongs = songs.items
songList = NSMutableArray(array: localSongs)
tableView.reloadData()
var song = MPMediaItem(coder: songList[0] as NSCoder)
var currentItem = AVPlayerItem(URL: song.valueForProperty(MPMediaItemPropertyAssetURL) as NSURL)
player.replaceCurrentItemWithPlayerItem(currentItem)
player.play()
var songTitle: AnyObject! = song.valueForProperty(MPMediaItemPropertyTitle)
songName.text = songTitle as? String
sliderOutlet.value = Float(player.currentTime()) // <<-Error here
I'm building a music player and I want a slider to show the duration of the song, but I get this error
Could not find an overload for 'init' that accepts the supplied arguments
I think the problem is converting CMTime to Float.
CMTime
is a structure, containing a value
, timescale
and other fields,
so you cannot just "cast" it to a floating point value.
Fortunately, there is a conversion function CMTimeGetSeconds()
:
let cmTime = player.currentTime()
let floatTime = Float(CMTimeGetSeconds(player.currentTime()))
Update: As of Swift 3, player.currentTime
returns a
TimeInterval
which is a type alias for Double
.
Therefore the conversion to Float
simplifies to
let floatTime = Float(player.currentTime)