2013-07-12 2 views
2

Я бы хотел воспроизвести звук при запуске моего приложения, но, во-первых, звук не воспроизводится! Независимо от того, как я его код. А во-вторых, мне бы хотелось, чтобы я мог его зацикливать.Looping Audio с AudioToolbox.framework

@implementation ViewController 

-(void)awakeFromNib 
{ 
    SystemSoundID soundID; 
    NSString *soundFile1 = [[NSBundle mainBundle] pathForResource:@"ScaryMusic" ofType:@"mp3"]; 
    AudioServicesCreateSystemSoundID((__bridge CFURLRef) [NSURL fileURLWithPath:soundFile1], &soundID); 

    AudioServicesPlaySystemSound(soundID); 
    NSLog(@"Sound Played"); 

} 

ответ

3

Попробуйте вместо этого:

#import <AVFoundation/AVFoundation.h> 

AVAudioPlayer *player; 
NSURL *soundFileURL = [[NSBundle mainBundle] URLForResource:@"ScaryMusic" withExtension:@"mp3"]; 
if (soundFileURL != nil) 
{ 
    player = [[AVAudioPlayer alloc] initWithContentsOfURL:soundFileURL error:nil]; 
    player.numberOfLoops = -1; //infinite 
} 

[player play]; 

Это лучше для mp3, и тому подобное. SystemSound в основном зарезервирован для коротких звуков типа .wav.

+1

Спасибо! : D Но могу ли я воспроизвести несколько звуков одновременно с этой функцией? Кажется, это не позволяет мне ..:/ –

+0

Да, вы можете, но вам нужен новый плеер для каждого звука. Этот ответ должен помочь для нескольких звуков http://stackoverflow.com/a/11195226/1550927 – Aeramor

+0

Если это сработало, вы принимаете ответ, чтобы другие могли его легко увидеть. – Aeramor

0

Если вы посмотрите в документах, вы обнаружите, что mp3 не относится к форматам, поддерживаемым AudioToolbox