2013-02-28 3 views
0

Я всегда использовал звуковую панель инструментов для воспроизведения своих звуков, но пользователи говорят, что звука нет, это потому, что когда вы находитесь в молчании, он не играет. Я пробовал много раз, чтобы поменяться местами, но никогда не работает для меня. это код, я пытаюсь использовать в настоящее время:AVFoundation не играет звук

- (IBAction)soundbutton:(id)sender { 
NSString *path = [[NSBundle mainBundle] pathForResource:@"EASPORTS" ofType:@"mp3"]; 
AVAudioPlayer * theAudio=[[AVAudioPlayer alloc] initWithContentsOfURL:[NSURL fileURLWithPath:path] error:NULL]; 

[theAudio play];} 

ответ

3

Причина может быть, что в АРК аудиоплеер выпускается по АРК, поэтому вы должны сделать сильную ссылку из AVAudioPlayer, вы можете сделать это, что делает класс AVAudioPlayer. вот как вы это делаете, в вашем .h файл как этот

@property (strong, nonatomic) AVAudioPlayer *theAudio; 

и в .m файле синтезировать как этот

@synthesize theAudio; 

и, наконец, ваш код будет выглядеть следующим образом

- (IBAction)soundbutton:(id)sender { 
    NSString *path = [[NSBundle mainBundle] pathForResource:@"EASPORTS" ofType:@"mp3"]; 
    self.theAudio=[[AVAudioPlayer alloc] initWithContentsOfURL:[NSURL fileURLWithPath:path] error:nil]; 
[self.theAudio play]; 
} 

проверить, если ваши методы делегата ни о чем не отвечают

- (void)audioPlayerDidFinishPlaying:(AVAudioPlayer *)player successfully:(BOOL)flag; 
- (void)audioPlayerDecodeErrorDidOccur:(AVAudioPlayer *)player error:(NSError *)error; 
+0

как я могу проверить? этот код не в моем проекте, кстати, – rblue36

+0

хорошо, если это не ваш проект, то откуда вы знаете код? вы должны в любом случае превратить игрока в собственность в классе, он решит вашу проблему. – nsgulliver

+0

. Я имею в виду, что закончил игру, и ошибка произошла с кодом – rblue36