iOS - 如何将UISlider变成" Scrubber / Seekbar"用于视频播放?

时间:2015-01-20 17:55:20

标签: ios objective-c uislider seekbar audio-player

我有一个AVAudioPlayer实例,可以从磁盘播放本地音频文件。回放进度通过UIProgressView反映出来。我试图用UISlider替换它。要完成任务,滑块将:

  • 响应计时器事件而移动以指示当前播放位置
  • 响应手动触摸以允许视频清理

我不确定如何让UISlider足够聪明地知道当人类触摸开始时,它应该停止响应计时器事件,并且当触摸被释放时,它应该恢复音频播放器处于新位置并再次开始使用计时器事件进行更新。

哪个"发送活动"我将使用故事板中的插座来创建行为 以上吗

目前,我已经更改了通用值""打回来。

enter image description here

- (IBAction)sliderChanged:(id)sender {

 if(self.backgroundMusicPlayer == nil)
    {
        NSError* error = nil;
        NSData* data   = [self.audioFile data];
        self.backgroundMusicPlayer = [[AVAudioPlayer alloc]initWithData:data error:&error];

        [self.backgroundMusicPlayer prepareToPlay];
    }  
 self.backgroundMusicPlayer.currentTime = self.slider.value;
 [self.backgroundMusicPlayer play];
}

2 个答案:

答案 0 :(得分:0)

你拥有的是对的。要使代码响应用户调整滑块,请使用Value Changed事件。如果您想要通知滑块已被触摸,请使用“触摸向下”事件,或向滑块添加手势识别器。

答案 1 :(得分:0)

我会保持简单,只需检查它继承自UIControl的UISlider的isTracking属性。