【发布时间】:2016-02-26 21:36:49
【问题描述】:
我正在使用 Parse 将音频流式传输到我的 iOS 设备,我想添加一个滑块来监控和更改正在播放的音频的进度。
我必须使用 AVPlayer 流式传输音频,有没有办法使用滑块更改音轨的进度,或者我必须将其更改为 AVAudioPlayer 格式(我也不知道该怎么做) ?
let audioQuery = PFQuery(className: "Audio")
audioQuery.getObjectInBackgroundWithId(IDArray[selectedPodcast], block: {
(object : PFObject?, error : NSError?) -> Void in
if let audioFileURLTemp = object?.objectForKey("AudioFile")?.url as String! {
audioURL = audioFileURLTemp
audioPlayer = AVPlayer(URL: NSURL(string: audioFileURLTemp)!)
audioPlayer.play()
}
})
这是我用来流式传输音频的代码
谢谢!
【问题讨论】:
-
改变进度是什么意思?您的意思是您希望能够将滑块用作擦洗器来查看音轨的某些部分吗?如果是这样的话,AVPlayer 有一个非常准确的
seekToTime()。你可以把它连接到你的 UISlider -
是的,这正是我需要的,我将如何实现它?如果你不介意给我看一些示例代码?
-
我可以发布答案,但我现在没有时间,非常抱歉。这是要点:在情节提要中或以编程方式创建 UISlider。将滑块连接到@IBAction 或
selector(如果您以编程方式制作了滑块)。每当移动滑块时都会调用选择器(或 IBAction)。所以在选择器中,你会做audioPlayer.seekToTime(//input value of slider on scale from 0 thru songDuration)。这样,当滑块移动时,audioPlayer 会跳转到滑块所在的时间。注意:seekToTime()将 CMTime 作为参数,因此您必须将 # 转换为 CMTime。 -
非常感谢,我搞定了!
标签: swift parse-platform avaudioplayer avplayer uislider