Domanda

Ecco quello che attualmente accade nella mia app:

Blocco: tasto di blocco iPhone Premuto -> Pausa audio
Sblocco: Pulsante iPhoneUnlocked Premuto -> Audio Ripreso -> Slide to Unlock -> App Appare

Voglio la sequenza di sblocco per essere:

Sblocco: Pulsante iPhoneUnlock Premuto -> Slide to Unlock -> Audio Ripreso -> App Appare

Sto usando OS 2.2.1 e AVFoundation Framework, ed ecco quello che ho già provato:

  • Ho cercato di usare applicationWillResignActive e callback applicationDidBecomeActive della AppDelegate, non funziona. Sebbene applicationDidBecomeActive è chiamato al tempo corretto (cioè quando l'utente ha fatto scorrere per sbloccare il dispositivo), l'audio viene ripreso appena viene premuto il pulsante di sblocco (Credo che sia a causa delle sessioni audio), così provai:

  • Ho implementato audioPlayerBeginInterruption e selettori audioPlayerEndInterruption della AVAudioPlayerDelegate, sembra che questi metodi non vengono mai chiamati (ho messo le chiamate di registro). Sono sicuro che io pongo il delegato correttamente dal audioPlayerDidFinishPlaying è correttamente chiamato quando un file audio ha finito di giocare.

P.S: Sto testando il dispositivo se non fosse ovvio

È stato utile?

Soluzione

A quanto pare vengono chiamati solo quando una sessione audio è stata interrotta, vale a dire se si stesse giocando audio e viene interrotto da altri dispositivi audio, che richiede una sessione attiva. In breve: essi non ottenere chiamato quando il telefono diventa inattivo, ma vengono chiamati quando si riceve una chiamata, per esempio. Ma anche allora solo vengono chiamati quando l'AVAudioPlayer era attivo al momento. Sto ancora lottando con quel sistema di merda ...

Altri suggerimenti

Lieve abuso del sistema, ma si possono osservare le notifiche di protezione di file per scoprire quando il dispositivo è stato sbloccato. Si potrebbe utilizzare che per decidere quando giocare di nuovo l'audio.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top