使用相同的按钮播放/暂停

Posted

技术标签:

【中文标题】使用相同的按钮播放/暂停【英文标题】:Play/Pause with the same button 【发布时间】:2012-12-17 08:23:37 【问题描述】:

如何使用相同的代码制作play/Pause 按钮。

- (IBAction)min:(id)sender 

  NSString *path = [[NSBundle mainBundle] pathForResource:@"1min" ofType:@"mp3"];
  AVAudioPlayer *theAudio = [[AVAudioPlayer alloc] initWithContentsOfURL:[NSURL fileURLWithPath:path] error:NULL];
                  theAudio.delegate = self;
                  theAudio.numberOfLoops = -1;
                  [theAudio play];
                  [[NSUserDefaults standardUserDefaults] setObject:@"-" forKey:@"music"]; 

如何通过同一个按钮恢复?

【问题讨论】:

【参考方案1】:

使用它来识别按钮状态:

在 .h 文件中制作 theAudio 声明:

AVAudioPlayer *theAudio;

在你的方法中:

UIButton *button = (UIButton *)sender;

button.selected = !button.selected;

if(button.selected)

   // Play
   NSString *path = [[NSBundle mainBundle] pathForResource:@"1min" ofType:@"mp3"];
   theAudio = [[AVAudioPlayer alloc] initWithContentsOfURL:[NSURL fileURLWithPath:path] error:NULL];
   theAudio.delegate = self;
   theAudio.numberOfLoops = -1;
   [theAudio play];
   [[NSUserDefaults standardUserDefaults] setObject:@"-" forKey:@"music"];

else

  // Pause
  [theAudio pause];

【讨论】:

能否请写更多关于 // 播放和 // 暂停部分的详细信息? @Anusha 这一步意味着什么“button.selected = !button.selected;”?【参考方案2】:

创建一个布尔值,例如buttonIsPlayButton。如果按钮是播放按钮,则在开始时将其设置为 true。然后当按下按钮时,将其设置为 false。您应该根据布尔值在每次按下按钮时更改图像。

【讨论】:

以上是关于使用相同的按钮播放/暂停的主要内容,如果未能解决你的问题,请参考以下文章

如何使用相同的触发器播放音频和视频

正在播放当前音频以及如何在单击同一按钮时暂停所有其他音频

使用播放/暂停/停止按钮控制 Flash 视频的声音

我们如何在ios的前台处理耳机播放/暂停按钮事件

无法拦截 Siri Remote 上的“暂停”按钮 - 始终停止背景音乐并且从不继续播放

使用当前音频 javascript 创建播放/暂停功能