1

我在 .storyboard 中制作了自定义按钮,点击时需要播放声音(不是音板,只需播放按钮按下的自定义音频文件)。
故事板编辑器中是否有声音选项可以启用此功能?如果没有,还有什么方法可以实现?

4

2 回答 2

5

故事板不允许您将“音频”分配给按钮。但是,您可以做的是在函数中使用相当简单的AVAudioPlayer

添加库

要使用 AVAudioPlayer,您首先需要将 2 个库/框架添加到您的项目中。这些框架包含实际播放器的基本代码,并允许我们(应用程序编写者)使用它。

在 xCode 中选择您的项目并转到Build Phases。选择Link Binary with Libraries。按小[+] - 图标并添加框架:

  • 音频工具箱
  • AV基金会

构架

现在我们必须告诉我们的代码我们实际上将使用这两个框架。打开控制器的 .H 文件,并在顶部添加:

#import <AVFoundation/AVFoundation.h>
#import <AudioToolbox/AudioToolbox.h>

事件+玩家

将 UIButton 的事件之一(通过情节提要)(例如 Touch Up Inside)绑定到新的 IBAction 函数(例如 playSound)。

通过绑定事件,您告诉您的应用程序如果用户按下按钮-> 运行此功能/代码。

现在,在您新创建的 IBAction 函数(例如 playSound)中添加一些代码来创建一个带有 MP3 的播放器并播放它;

- (IBAction)playSound:(id)sender
{

   // Load in a audio file from your bundle (all the files you have added to your app)
   NSString *audioFile = [[NSBundle mainBundle] pathForResource:@"filename" ofType:@"mp3"];

   // Convert string to NSURL
   NSURL *audioURL = [NSURL fileURLWithPath:audioFile];

   // Initialize a audio player with the URL (the mp3)
   AVAudioPlayer *player = [[AVAudioPlayer alloc] initWithContentsOfURL:audioURL error:nil];

   // Start playing
   [player play];

}

我希望这会帮助你朝着正确的方向前进?

检查 Apple 的文档,了解 AVAudioPlayer 除了“播放”之外的所有功能/方法(例如缓冲、暂停等)

于 2012-09-01T00:11:13.140 回答
2

当我使用设置音量时,上面的代码有效

[播放器设置音量:1.0];

在我这样做之前它不起作用。

于 2014-07-23T19:01:08.317 回答