在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"]];