0

在 Iphone 上播放声音的最简单方法是什么?我有一个 mp3 文件,我宁愿保留它,不要将其转换为其他格式。

4

3 回答 3

3

我所知道的播放 MP3 文件的最简单方法是使用AVAudioPlayer该类。基本上,只需执行(跳过错误检查、设置委托以检测完成等):

NSURL* soundUrl = [[NSBundle mainBundle] URLForResource:@"soundFile" withExtension:@"mp3"];
AVAudioPlayer* player = [[AVAudioPlayer alloc] initWithContentsOfURL:soundUrl error:&err];
[player play];
于 2012-08-26T15:49:56.457 回答
1

首先将 AVFoundation Framework 添加到项目中 [Goto Target> 右键单击​​项目>Build Phases>Link Binary with Library> 点击 +> 选择 AVFoundation> Add]

// get file path
NSString *soundPath = [[NSBundle mainBundle] pathForResource: fileNameToPlay ofType:@"mp3"];

// allocate and refer to file
AVAudioPlayer *player =[[AVAudioPlayer alloc] initWithContentsOfURL:[NSURL fileURLWithPath: soundPath] error: NULL];

// set delegate
player. delegate = self; 

// play
[player play];
于 2012-08-26T16:15:28.157 回答
0

显然这结果是一团糟,但我找到了解决方案。我正在运行 XCode 4.4.1。

以下是对我有用的步骤:

  1. 将 mp3 文件从 finder 拖到 XCode 项目 -> 支持文件中。确保复制文件。假设文件名为 sound.mp3。
  2. 将 AVFoundation 框架添加到您的项目中。
  3. 导入 <AVFoundation/AVFoundation.h>

  4. @property (strong) AVAudioPlayer* soundPlayer;
  5. 使用以下代码初始化播放器并播放 mp3: NSURL *chemin = [NSURL fileURLWithPath:[NSString stringWithFormat:@"%@/sound.mp3", [[NSBundle mainBundle] resourcePath]]]; NSError *错误;self.soundPlayer = [[AVAudioPlayer alloc] initWithContentsOfURL:chemin error:&error]; [self.soundPlayer 播放];

现在在这一点上,我遇到了一个异常,这里描述了:AVFoundation iOS 5 简而言之,这意味着模拟器中可能存在一个不应该在设备上发生的错误。就我而言,我打开了所有异常,这阻止了我的代码执行。您应该做的是删除抛出所有异常的选项。

此外,在我的情况下,距离它第一次播放声音需要 3-5 秒,所以当你没有立即听到声音时请耐心等待。第一次播放后,它会立即播放。

于 2012-08-26T17:34:29.570 回答