AVAudioPlayer não começa a tocar em segundo plano
estou usandoAVAudioPlayer
eNSFileHandle
fazer streaming de áudio. A idéia básica é que eu salve os dados de streaming de áudio para o dispositivo com o sistema de arquivos e, em seguida, useAVAudioPlayer
para reproduzir o arquivo que acabou de ser salvo.AVAudioPlayer
ainda pode reproduzir esse arquivo até mesmo o streaming está em andamento.
eu tenho umUIButton
para iniciar o streaming / download. Quando os dados baixados são acumulados para uma quantidade específica de Bytes,AVAudioPlayer
vai jogar (o "play" método deAVAudioPlayer
é acionado) automaticamente. Minha pergunta é: toque no botão para iniciar o streaming / download e, em seguida, pressione o botão home do iPhone muito em breve para fazer meu app ir para o segundo plano. O download continua funcionando em segundo plano, mas o método "play" deAVAudioPlayer
retorna "NO", o que significa que o método "play" não reproduz o áudio.
Eu adicioneiAVAudioSession
código relacionado ao método init do meu reprodutor de áudio:
- (id) initWithURL:(NSString *) downloadedMusicURL
{
if ((self = [super init]))
{
[[UIApplication sharedApplication] beginReceivingRemoteControlEvents];
CFURLRef url = CFURLCreateWithFileSystemPath (NULL, (CFStringRef)downloadedMusicURL, kCFURLPOSIXPathStyle, FALSE);
audioPlayer = [[AVAudioPlayer alloc] initWithContentsOfURL:CFBridgingRelease(url) error:nil];
AVAudioSession *session = [AVAudioSession sharedInstance];
[session setActive:YES error:nil];
[session setCategory:AVAudioSessionCategoryPlayback error:nil];
}
return self;
}
Também no info.plist eu adicionei um item "App reproduz áudio" para a chave "Modos de fundo necessários". No entanto, o "play" ainda não é chamado adequadamente em segundo plano. O que mais eu sinto falta? Muito obrigado antecipadamente.