Como fazer uma pausa de áudio / currículo quando o iPhone está bloqueado / desbloqueado

StackOverflow https://stackoverflow.com/questions/741567

  •  09-09-2019
  •  | 
  •  

Pergunta

Aqui está o que atualmente acontece na minha app:

Bloqueio: Bloqueio de iPhone botão pressionado -> Áudio pausado
Desbloquear: iPhoneUnlocked botão pressionado -> Audio Retomada -> Slide to Unlock -> App Aparece

Eu quero que a sequência de desbloqueio para ser:

Desbloqueio: iPhoneUnlock botão pressionado -> Slide to Unlock -> Audio Retomada -> App Aparece

Eu estou usando OS 2.2.1 e AVFoundation Framework, e aqui está o que eu já tentei:

  • Eu tentei usar applicationWillResignActive e applicationDidBecomeActive retornos de chamada do AppDelegate, ele não funciona. Embora applicationDidBecomeActive é chamado no momento correto (isto é quando o usuário tenha deslizado para desbloquear o dispositivo), o áudio fica retomado logo que o botão de desbloqueio é pressionado (acho que é por causa das sessões de áudio), então eu tentei:

  • Eu implementei audioPlayerBeginInterruption e audioPlayerEndInterruption seletores do AVAudioPlayerDelegate, parece que estes métodos nunca são chamados (eu coloquei chamadas de log). Eu estou certo que eu estou definindo o delegado corretamente desde audioPlayerDidFinishPlaying está corretamente chamado quando um arquivo de áudio tem jogo acabado.

P.S: Eu estou testando no dispositivo se isso não era óbvio

Foi útil?

Solução

Eles, aparentemente, só são chamados quando uma sessão de áudio foi interrompido, que vai dizer se você estivesse jogando áudio e está sendo interrompido por outro áudio que solicita uma sessão ativa. Em suma: eles não são chamados quando o telefone fica inactivo, mas eles são chamados quando você recebe uma chamada, por exemplo. Mas, mesmo assim eles só são chamados quando o AVAudioPlayer estava ativo no momento. Eu ainda estou lutando com esse sistema de baixa qualidade ...

Outras dicas

abuso Ligeira do sistema, mas você pode observar as notificações de proteção de arquivos para saber quando o aparelho foi desbloqueado. Você poderia usar isso para decidir quando para reproduzir o áudio novamente.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top