在 Iphone 上播放声音的最简单方法是什么?我有一个 mp3 文件,我宁愿保留它,不要将其转换为其他格式。
问问题
105 次
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。
以下是对我有用的步骤:
- 将 mp3 文件从 finder 拖到 XCode 项目 -> 支持文件中。确保复制文件。假设文件名为 sound.mp3。
- 将 AVFoundation 框架添加到您的项目中。
导入 <AVFoundation/AVFoundation.h>
- @property (strong) AVAudioPlayer* soundPlayer;
- 使用以下代码初始化播放器并播放 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 回答