Avaudioplayer 通过在UISlider中选择点来修剪音频文件

Avaudioplayer 通过在UISlider中选择点来修剪音频文件,avaudioplayer,audio-recording,uislider,uiprogressbar,Avaudioplayer,Audio Recording,Uislider,Uiprogressbar,我正在制作一个音频播放器,在那里我需要显示正在播放的音频的进度。我还需要通过选择我标记的点来修剪音频 谢谢 文凯特什瓦兰我终于找到了解决办法 enter code here UISlider *sliderProgress = [[UISlider alloc] initWithFrame:CGRectMake(135, 165, 260, 28)]; sliderProgress.maximumValue = self.player.duration; [slid

我正在制作一个音频播放器,在那里我需要显示正在播放的音频的进度。我还需要通过选择我标记的点来修剪音频

谢谢


文凯特什瓦兰

我终于找到了解决办法

enter code here 

    UISlider *sliderProgress = [[UISlider alloc] initWithFrame:CGRectMake(135, 165, 260, 28)];
    sliderProgress.maximumValue = self.player.duration;
    [sliderProgress addTarget:self action:@selector(sliderChanged:) forControlEvents:UIControlEventValueChanged];
    [self setProgressSlider:sliderProgress];
    [self addSubview:progressSlider];
    [sliderProgress release];

    _leftThumbView = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, 56, 35)];
    _leftThumbView.image = [UIImage imageNamed:@"top.png"];
    _leftThumbView.contentMode = UIViewContentModeLeft;
    _leftThumbView.userInteractionEnabled = YES;
    _leftThumbView.clipsToBounds = YES;
    [progressSlider addSubview:_leftThumbView];

    UIPanGestureRecognizer *leftPan = [[UIPanGestureRecognizer alloc] initWithTarget:self action:@selector(handleLeftPan:)];
    [_leftThumbView addGestureRecognizer:leftPan];

    _rightThumbView = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, 56, 35)];
    _rightThumbView.image = [UIImage imageNamed:@"bottom.png"];
    _rightThumbView.contentMode = UIViewContentModeRight;
    _rightThumbView.userInteractionEnabled = YES;
    _rightThumbView.clipsToBounds = YES;
    [progressSlider addSubview:_rightThumbView];

    UIPanGestureRecognizer *rightPan = [[UIPanGestureRecognizer alloc] initWithTarget:self action:@selector(handleRightPan:)];
    [_rightThumbView addGestureRecognizer:rightPan];

      - (void)handleLeftPan:(UIPanGestureRecognizer *)gesture
    {
        if (gesture.state == UIGestureRecognizerStateBegan || gesture.state == UIGestureRecognizerStateChanged) {
          CGPoint translation = [gesture translationInView:self];
          CGFloat range = progressSlider.maximumValue - progressSlider.minimumValue;
    CGFloat availableWidth = 260 - 28;
    _leftValue += translation.x / availableWidth * range;
    if (_leftValue < 0) _leftValue = progressSlider.minimumValue;
    if (_rightValue - _leftValue < progressSlider.minimumValue) _leftValue = _rightValue - 1.0;

    [gesture setTranslation:CGPointZero inView:self];

    [self setNeedsLayout];



}

//if (gesture.state == UIGestureRecognizerStateEnded)
    //[self hidePopover:_leftPopover];
在此处输入代码
UISlider*sliderProgress=[[UISlider alloc]initWithFrame:CGRectMake(135、165、260、28)];
sliderProgress.maximumValue=self.player.duration;
[sliderProgress addTarget:自我操作:@选择器(sliderChanged:)用于控制事件:UIControlEventValueChanged];
[自我设置进度滑块:滑块进度];
[自添加子视图:progressSlider];
[滑块程序释放];
_leftThumbView=[[UIImageView alloc]initWithFrame:CGRectMake(0,0,56,35)];
_leftThumbView.image=[UIImage ImageName:@“top.png”];
_leftThumbView.contentMode=UIViewContentModeLeft;
_leftThumbView.userInteractionEnabled=是;
_leftThumbView.clipsToBounds=是;
[progressSlider addSubview:_leftThumbView];
UIPanGestureRecognizer*leftPan=[[UIPanGestureRecognizer alloc]initWithTarget:self action:@selector(handleLeftPan:)];
[_LeftThumbViewAddGestureRecognitor:leftPan];
_rightThumbView=[[UIImageView alloc]initWithFrame:CGRectMake(0,0,56,35)];
_rightThumbView.image=[UIImage ImageName:@“bottom.png”];
_rightThumbView.contentMode=UIViewContentModerRight;
_rightThumbView.userInteractionEnabled=是;
_rightThumbView.clipsToBounds=是;
[progressSlider addSubview:_rightThumbView];
UIPanGestureRecognizer*rightPan=[[UIPanGestureRecognizer alloc]initWithTarget:self action:@selector(HandlerRightPan:)];
[_RightThumbViewAddGestureRecognitor:rightPan];
-(无效)Handleftpan:(UIPangestureRecognitor*)手势
{
if(sirpose.state==UIGestureRecognizerStateStarted | | sirpose.state==UIGestureRecognizerStateChanged){
CGPoint translation=[手势翻译视图:self];
CGFloat范围=progressSlider.maximumValue-progressSlider.minimumValue;
CGFloat可用宽度=260-28;
_leftValue+=translation.x/可用宽度*范围;
如果(_leftValue<0)_leftValue=progressSlider.minimumValue;
如果(_rightValue-_leftValue
}

-(void)HandlerRightPan:(UIPangestureRecognitor*)手势
{
if(sirpose.state==UIGestureRecognizerStateStarted | | sirpose.state==UIGestureRecognizerStateChanged){
CGPoint translation=[手势翻译视图:self];
CGFloat范围=progressSlider.maximumValue-progressSlider.minimumValue;
CGFloat可用宽度=260-28;
_rightValue+=translation.x/可用宽度*范围;
如果(_rightValue>progressSlider.maximumValue)_rightValue=progressSlider.maximumValue;
如果(_rightValue-_leftValue
}

       - (void)handleRightPan:(UIPanGestureRecognizer *)gesture
    {
         if (gesture.state == UIGestureRecognizerStateBegan || gesture.state == UIGestureRecognizerStateChanged) {
        CGPoint translation = [gesture translationInView:self];
    CGFloat range = progressSlider.maximumValue - progressSlider.minimumValue;
    CGFloat availableWidth = 260 - 28;
    _rightValue += translation.x / availableWidth * range;

    if (_rightValue > progressSlider.maximumValue) _rightValue = progressSlider.maximumValue;
    if (_rightValue - _leftValue < progressSlider.minimumValue) _rightValue = _leftValue + 1.0;

    [gesture setTranslation:CGPointZero inView:self];

    [self setNeedsLayout];