Não posso tocar arquivo mp3 usando avaudioplayer
-
25-09-2019 - |
Pergunta
Eu quero reproduzir o arquivo mp3 colocado em recursos como o código é fornecido abaixo,
NSString *st=@"alarm_1.mp3";
NSLog(st);
NSURL* musicFile = [NSURL fileURLWithPath:st];
AVAudioPlayer *click = [[AVAudioPlayer alloc] initWithContentsOfURL:musicFile error:nil];
//AVAudioPlayer *click1=[[AVAudioPlayer alloc]initWithContentsOfURL:[NSURL URLWithString:@"alarm_1.mp3"]];
[click prepareToPlay];
[click play];
[click release];
Mas infelizmente não consigo ouvir o som, por favor me ajude
Solução
Eu não acho que o nome do seu arquivo esteja certo. Experimente esta sintaxe:
NSURL *clickURL = [NSURL fileURLWithPath:[NSString stringWithFormat:@"%@/alarm_1.mp3", [[NSBundle mainBundle] resourcePath]]];
AVAudioPlayer *audioPlayer = [[AVAudioPlayer alloc]initWithContentsOfURL:clickURL error:nil];
Outras dicas
Eu tive um problema semelhante devido ao ARC. Em vez de definir o Avaudioplayer no mesmo método que você o está usando, você deve ter uma variável de instância em outro lugar, como o UIViewController. Dessa forma, o ARC não libera automaticamente esse objeto e o áudio pode ser reproduzido.
NSURL *url = [NSURL fileURLWithPath:[NSString stringWithFormat:@"%@/alarm_1.mp3", [[NSBundle mainBundle] resourcePath]]];
NSError *error;
AVAudioPlayer *audioPlayer = [[AVAudioPlayer alloc] initWithContentsOfURL:url error:&error];
audioPlayer.numberOfLoops = -1;
[audioPlayer play];
Isso é resposta
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow