Reputation: 341
Hi i am developing AVAudioplayer according to my project requirement.I am creating audioplayer programatically. I want to display pause button if user clicks the play button.I wrote some code.But pause button should not displayed if i click the play button.so please help me anybody. Thanks in advance.
-(void)viewDidLoad
{
playButton=[[UIButton alloc]init];
playButton.frame=CGRectMake(125, 120, 29, 29);
playButton.backgroundColor=[UIColor clearColor];
playbackgroundImage=[UIImage imageNamed:@"play.png"];
[playButton setImage:playbackgroundImage forState:UIControlStateNormal];
[playButton addTarget:self action:@selector(playOrPauseButtonPressed:) forControlEvents:UIControlEventTouchUpInside];
[self.view addSubview:playButton];
}
-(void)playOrPauseButtonPressed:(id)sender
{
if(playing==NO)
{
[playButton setBackgroundImage:[UIImage imageNamed:@"Pause.png"] forState:UIControlStateNormal];
// Here Pause.png is a image showing Pause Button.
NSError *err;
AVAudioSession *audioSession=[AVAudioSession sharedInstance];
[audioSession setCategory:AVAudioSessionCategoryPlayback error:nil];
NSData *data=[NSData dataWithContentsOfURL:url];
audioPlayer=[[AVAudioPlayer alloc]initWithData:data error:&err];
[audioPlayer prepareToPlay];
audioPlayer.delegate=self;
[audioPlayer play];
playing=YES;
}
else if (playing==YES)
{
[playButton setBackgroundImage:[UIImage imageNamed:@"play.png"] forState:UIControlStateNormal];
[audioPlayer pause];
playing=NO;
}
}
Upvotes: 0
Views: 560
Reputation: 13020
The problem is that you are setting Setimage first time and on playOrPauseButtonPressed
you are setting SetBackgroundImage.
so replace this method in viewDidLoad
[playButton setBackgroundImage:playbackgroundImage forState:UIControlStateNormal];
Upvotes: 1