Abd*_*u23 9 uislider cmtime swift
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
Run Code Online (Sandbox Code Playgroud)
我正在构建一个音乐播放器,我想要一个滑块来显示歌曲的持续时间,但是我收到了这个错误
找不到接受提供的参数的'init'的重载
我认为问题是将CMTime转换为Float.
Mar*_*n R 21
CMTime是一个结构,包含value,timescale以及其他领域,所以你不能只是"投"到一个浮点值.
幸运的是,有一个转换功能CMTimeGetSeconds():
let cmTime = player.currentTime()
let floatTime = Float(CMTimeGetSeconds(player.currentTime()))
Run Code Online (Sandbox Code Playgroud)
更新:从Swift 3开始, player.currentTime返回
TimeInterval一个类型别名Double.因此转换Float简化为
let floatTime = Float(player.currentTime)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
12169 次 |
| 最近记录: |