【问题标题】:How to display Pause Button if user click the Play button in AVAudioPlayer in ios如果用户在 ios 中单击 AVAudioPlayer 中的播放按钮,如何显示暂停按钮
【发布时间】:2023-11-13 09:41:02
【问题描述】:

您好,我正在根据我的项目要求开发 AVAudioplayer。我正在以编程方式创建音频播放器。如果用户单击播放按钮,我想显示暂停按钮。我写了一些代码。但是如果我单击播放按钮,则不应显示暂停按钮。所以请帮助我。提前致谢。

-(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;

}

}

【问题讨论】:

  • 你在 playOrPauseButtonPressed 方法中设置了错误的条件
  • @DeepK 感谢您的回复。所以请指导我正确的方法。

标签: ios objective-c iphone xcode avaudioplayer


【解决方案1】:

问题在于您是第一次设置 Setimage,而在 playOrPauseButtonPressed 上您正在设置 SetBackgroundImage。 所以把这个方法换成viewDidLoad

 [playButton setBackgroundImage:playbackgroundImage forState:UIControlStateNormal];

【讨论】: