0

如何从第一个视图中的按钮播放声音,然后从另一个视图中停止(使用按钮)

4

3 回答 3

1

首先明确您要停止来自其他视图而不是视图控制器的声音。

如果您想从其他视图停止,则将音频播放器设为您的类对象,并在其他视图的按钮方法中停止它。

如果您想从其他视图控制器停止,请使用委托。

于 2012-05-11T12:41:12.140 回答
1

十分简单!首先添加 AVFoundation 框架并实现 AVAudioPlayer。您可以查看有关如何播放音乐/声音的文档和其他堆栈溢出问题。然后使 AVAudioPlayer 成为一个类中的属性。然后声明一个停止声音的方法,通过调用[audioPlayer stop]也值得一提的是[audioPlayer pause] // and [audioPlayer play]两者都存在。或者,您可以通过另一个类的指向该类本身的指针来调用这些消息。然后在另一个类中,声明一个具有指向另一个类的指针的 IBAction,并向该类发送一条消息,告诉它执行停止方法。很简单,这是一个结构:

  1. 在 FirstView 中,声明一个播放音乐的 AVAudioPlayer 属性
  2. 在 FirstView 中,声明一个停止方法
  3. 实现那个停止方法
  4. 使用将页面更改为 SecondView 的 IBAction 方法声明并绘制 UIButton
  5. 在 SecondViewviewDidLoad方法中,添加并绘制一个 UIButton 链接到调用 stop 方法的 IBAction 或者只是调用[FirstView audioPlayer] stop];或类似的东西!

记得遵守代表!重要的!

您可以参考 AVAUDIOPLAYER 代码的建议问题!

iPhone/iPad - 循环播放背景音乐?

但请记住不要从字面上复制这段代码,记住属性,你显然有参数修改。对不起,如果我听起来太明显了,只是因为你的问题太模糊了,我不知道你是不是一个初学者!

于 2012-05-11T12:43:41.853 回答
0

用一个监听自定义通知的类包裹你的播放器。
例如:

#define PlayerPlayNotification @"PlayerPlayNotification"
#define PlayerStopNotification @"PlayerStopNotification"

然后每个按钮可以发送所需的通知以开始/停止播放,而无需了解实际播放器或有任何指向它的指针。

于 2012-05-11T12:55:26.903 回答