在IOS上播放声音

我想在按下button时播放声音。 我试过这个:

-(void)PlayClick { NSURL* musicFile = [NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:@"BubblePopv4" ofType:@"mp3"]]; AVAudioPlayer *click = [[AVAudioPlayer alloc] initWithContentsOfURL:musicFile error:nil]; [click play]; } 

…并导入#import <AudioToolbox/AudioToolbox.h>#import <AVFoundation/AVFoundation.h>

但是由于某种原因声音不能播放。 名称和types是正确的,因为我添加到项目中的文件是“BubblePopv4.mp3”。 iPad上的音量最大,iTunes上的声音播放效果很好! 有任何想法吗?

离开它,不要在一个新的类,简单的东西给你:

 - (void)playSoundWithOfThisFile:(NSString*)fileNameWithExtension { // Eg - abc.mp3 AVAudioPlayer *audioPlayerObj; NSString *filePath; filePath= [[NSString stringWithFormat:@"%@", [[NSBundle mainBundle] resourcePath]] retain]; if(!audioPlayerObj) audioPlayerObj = [AVAudioPlayer alloc]; NSURL *acutualFilePath= [NSURL fileURLWithPath:[NSString stringWithFormat:@"%@/%@",filePath,fileNameWithExtension]]; NSError *error; [audioPlayerObj initWithContentsOfURL:acutualFilePath error:&error]; [audioPlayerObj play]; } 

做这个:

在.h文件中:

 Use this delegate - <AVAudioPlayerDelegate> #import "AVFoundation/AVAudioPlayer.h" AVAudioPlayer *audioPlayerObj; NSString *filePath; 

在.m文件中,在某些方法中:

  filePath= [[NSString stringWithFormat:@"%@", [[NSBundle mainBundle] resourcePath]] retain]; if(!audioPlayerObj) audioPlayerObj = [AVAudioPlayer alloc]; 

并添加这两个方法:

 - (id)initWithFileName:(NSString*)fileNameWithExtension { if ((self = [super init])) { NSURL *acutualFilePath= [NSURL fileURLWithPath:[NSString stringWithFormat:@"%@/%@",filePath,fileNameWithExtension]]; NSError *error; [audioPlayerObj initWithContentsOfURL:acutualFilePath error:&error]; } return self; } - (void)playSound { [audioPlayerObj play]; } 

您可以将文件名传递给此方法 – initWithFileName

然后调用playSound方法为你播放声音。

希望这可以帮助。

将url初始化replace为:

 NSURL* musicFile = [NSURL initFileURLWithPath:[[NSBundle mainBundle] pathForResource:@"BubblePopv4" ofType:@"mp3"]];