Звук не воспроизводится при использовании AVAudioPlayer - PullRequest
1 голос
/ 04 августа 2011

Вот мой код при нажатии кнопки

- (void)playButton:(id)sender
{
    NSLog(@"Play  Button Clicked!!!...");
    audioPlayer = [self setUpAudioPlayer:[songs objectAtIndex:i]];
}

-(AVAudioPlayer *)setUpAudioPlayer:(NSString *)filename
{
    NSLog(@"File name : %@",filename);

    NSString *path = [[NSBundle mainBundle] pathForResource:filename ofType:@"caf"]; 

    NSLog(@"File path = %@",path);

    AVAudioPlayer *audioPlayer = [[AVAudioPlayer alloc] initWithContentsOfURL:[NSURL fileURLWithPath:path] error:nil]; 

    //audioPlayer.volume = 0.5;
    [audioPlayer prepareToPlay];
    [audioPlayer play];
    NSLog(@"Song is playing....");

    return [audioPlayer autorelease];
}

здесь песни NSMutableArray, который содержит имя файла ... Все идет правильно с NSLog ... Но нет звука и нет ошибки ..Что не так с кодом .. ???

Ответы [ 2 ]

3 голосов
/ 04 августа 2011

Ваш аудиоплеер, вероятно, будет выпущен, как только он начнет играть. Попробуйте сохранить его после вызова setUpAudioPlayer.

1 голос
/ 04 августа 2011

Скорее всего, вам нужно инициализировать аудио-сессию, например,

- (void)setupAudioSession
{

    AVAudioSession *session = [AVAudioSession sharedInstance];
    NSError *error = nil;

    [session setCategory: AVAudioSessionCategoryPlayback error: &error];
    if (error != nil)
        NSLog(@"Failed to set category on AVAudioSession");

    // AudioSession and AVAudioSession calls can be used interchangeably
    OSStatus result = AudioSessionAddPropertyListener(kAudioSessionProperty_AudioRouteChange, RouteChangeListener, self);
    if (result) NSLog(@"Could not add property listener! %d\n", result);

    BOOL active = [session setActive: YES error: nil];
    if (!active)
        NSLog(@"Failed to set category on AVAudioSession");


}
...