Frage

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;

}

}
War es hilfreich?

Lösung

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];
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top