我有两个使用audiotoolbox框架播放短mp3文件的应用程序。 部署目标是:4.0 Base SDK是:iOS 5.0 SDK
我有iOS 5.0的iphone 4和iOS 5.0的iPhone 3GS。他们俩都在播放声音。我的一个朋友拥有带iOS 4.3的iPad,无法播放任何声音。而另一位拥有iOS 4.2的iPhone 4的朋友也无法播放这些声音。它看起来像iOS的东西,但我真的不知道它不玩的真正原因是什么。
以下是我播放文件的代码示例:
小时。文件(仅相关代码):
#import <AudioToolbox/AudioToolbox.h>
SystemSoundID soundID1;
微米。文件(仅相关代码):
@synthesize soundID1
- (IBAction)one:(id)sender
{ NSString *path = [[NSBundle mainBundle] pathForResource:@"1" ofType:@"mp3"];
AudioServicesCreateSystemSoundID((CFURLRef)[NSURL fileURLWithPath:path], &soundID1);
AudioServicesPlaySystemSound (soundID1);
}
- (void)dealloc { AudioServicesDisposeSystemSoundID (self.soundID1);}
答案 0 :(得分:1)
为什么不使用AVAudioPlayer来播放声音文件。
这是守则。
#import <AVFoundation/AVAudioPlayer.h>
- (void)viewDidLoad
{
NSString *path1 = [[NSBundle mainBundle] pathForResource:@"1" ofType:@"mp3"];
1 = [[AVAudioPlayer alloc] initWithContentsOfURL:[NSURL fileURLWithPath:path1] error:NULL];
1.delegate = self;
[1 setVolume:1.0];
[1 prepareToPlay];
}
- (IBAction)one:(id)sender
{
if (1 && 1.playing) {
[1 stop];
[1 setCurrentTime:0];
[1 play];
}else {
[1 play];
}
}
自iOS 5使用ARC以来,它不需要发布。但是,如果您使用较旧的iOS,则在dealloc方法上创建一个版本。