AudioToolBox не воспроизводится на некоторых устройствах - PullRequest
0 голосов
/ 05 декабря 2011

У меня есть два приложения, которые используют каркас audiotoolbox для воспроизведения коротких mp3-файлов.Цель развертывания: 4.0. Базовый SDK: iOS 5.0 SDK

У меня есть iphone 4 с iOS 5.0 и iPhone 3GS с iOS 5.0.Они оба играют звуки.Мой друг, у которого есть iPad с iOS 4.3, не может воспроизводить звуки.И другой друг с iPhone 4 с iOS 4.2 также не может воспроизводить звуки.Похоже, это что-то с iOS, но я не имею ни малейшего понятия, какова реальная причина, по которой он не играет.

Вот пример моего кода для воспроизведения файла:

H.файл (только соответствующий код):

#import <AudioToolbox/AudioToolbox.h> 

SystemSoundID soundID1;

M.файл (только соответствующий код):

@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 Ответ

1 голос
/ 05 декабря 2011

Почему бы вам не использовать 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.

...