AudioToolBox无法在某些设备上播放

时间:2011-12-05 01:51:00

标签: iphone ios ipad audio audiotoolbox

我有两个使用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);}

1 个答案:

答案 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方法上创建一个版本。