如何在ios中的音频播放器中以编程方式进行播放,暂停按钮

时间:2014-03-14 10:42:58

标签: ios iphone objective-c avaudioplayer

根据我的项目要求,我正在AVAudioplayer工作。

我正在以编程方式创建播放,暂停,前进和后退。

我知道如何以编程方式创建前进和后退按钮。

但我不知道如何创建播放和暂停按钮(意味着在audioplayer用户点击播放按钮会自动显示暂停按钮,如果点击暂停按钮则会自动更改播放按钮。)。

如何以编程方式处理播放和暂停按钮这两个功能。

// Play Button creation


playButton = [UIButton buttonWithType:UIButtonTypeRoundedRect];

playButton.frame = CGRectMake(20, 380, 60, 60);

UIImage * buttonImage = [UIImage imageNamed:@“playButton.png"];

[playButton setImage:buttonImage forState:UIControlStateNormal]; 

[playButton addTarget:self action:@selector(playButtonPressed:) forControlEvents:UIControlEventTouchUpInside];

[self.view addSubview:playButton];


// Pause Button.


pauseButton = [UIButton buttonWithType:UIButtonTypeRoundedRect];

pauseButton.frame = CGRectMake(130, 380, 60, 60);

UIImage *pauseButton=[UIImage imageNamed:@“pauseButton.png”];

[pauseButton setImage:pauseButton forState:UIControlStateNormal];

[pauseButton addTarget:self action:@selector(pauseButtonPressed:)forControlEvents:UIControlEvents:UIControlEventsTouchUpInside];

[self.view addSubView:pauseButton];

3 个答案:

答案 0 :(得分:1)

首先,您需要在xib上添加一个按钮以进行播放和暂停。 现在在xib中根据状态配置设置按钮的背景图像。

对于播放按钮 - 选择默认状态,然后将播放图像设置为按钮 对于暂停按钮,选择状态为已选择,然后将暂停图像设置为按钮

现在转到IBAction-

-(IBAction)playPauseButtonPressed:(id)sender并将其分配给按钮

现在

//playpause button pressed
-(void)playPauseButtonPressed:(id)sender
{   

    if([sender isSelected])//means pause
    {       
             //This will change the image of the button to play image
        [sender setSelected:NO];
        [audioPlayer pause];
        [timer invalidate];
        timer=nil;      
    }
    else//means play
    {    
    //This will change the image of the button to pause image
        [sender setSelected:YES];

          if(audioPlayer)
            {
                [audioPlayer release];
                audioPlayer=nil;
            }

            url = [NSURL fileURLWithPath:[NSString stringWithFormat:@"%@/%@", [[NSBundle mainBundle] resourcePath],[tmsAppDeledate.songTitleArray objectAtIndex:tmsAppDeledate.selectedSongIndex]]];
            //path = [NSData dataWithContentsOfURL:url];
            audioPlayer =[[AVAudioPlayer alloc] initWithContentsOfURL:url error:&error];
            [[AVAudioSession sharedInstance] setDelegate: self];
            [[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlayback error:nil];

            audioPlayer.delegate=self;
            [audioPlayer play];
            if(timer)
            {
                [timer invalidate];
                timer=nil;
            }

            [self startTimer];


        }           
            }       
}

简而言之,处理播放和暂停按钮的setSelected方法

答案 1 :(得分:0)

playButton = [[UIButton alloc] initWithFrame:CGRectMake(100, 200, 100, 100)];
    [playButton setImage:[UIImage imageNamed:@"apple.png"] forState:UIControlStateNormal];
    [playButton addTarget:self action:@selector(playButtonPressed:) forControlEvents:UIControlEventTouchUpInside];
    [self.view addSubview:playButton];




pauseButton = [[UIButton alloc] initWithFrame:CGRectMake(100, 400, 100, 100)];
[pauseButton setImage:[UIImage imageNamed:@"stevejobs.png"] forState:UIControlStateNormal];
[pauseButton addTarget:self action:@selector(pauseButtonPressed:) forControlEvents:UIControlEventTouchUpInside];
[self.view addSubview:pauseButton];

答案 2 :(得分:-1)

//Create a button in viewDidLoad() 
//UIButton *play = [UIButton buttonWithType:UIButtonTypeRoundedRect];
      play = CGRectMake(100, 100, 160, 50);
-(void)PlayStop{

 if (playing==NO) {
// Init audio with playback capability

[play setBackgroundImage:[UIImage imageNamed:@"hmpause.png"] forState:UIControlStateNormal];
 //hmpause.png is a image showing pause button
AVAudioSession *audioSession = [AVAudioSession sharedInstance];
[audioSession setCategory:AVAudioSessionCategoryPlayback error:nil];

audioPlayer = [[AVAudioPlayer alloc] initWithContentsOfURL:______ error:&err];
[audioPlayer prepareToPlay];

audioPlayer.delegate=self;
[audioPlayer play];

playing=YES;
}
else if(playing==YES){
[play setBackgroundImage:[UIImage imageNamed:@"Audioplay.png"] forState:UIControlStateNormal];
 // 'Audioplay.png' is a image showing play button
[audioPlayer pause];

playing=NO;

}

} 在这里查看答案 Play/Pause with the same button [AVAudioPlayer]