Estou reproduzindo vídeo de um controlador como este:
func playMovie() {
let path = Bundle.main.path(forResource: "xyz", ofType:"mov")
let url = URL(fileURLWithPath: path!)
self.player = AVPlayer(url: url)
let layer: AVPlayerLayer = AVPlayerLayer(player: self.player)
layer.frame = self.view.frame
layer.videoGravity = AVLayerVideoGravityResizeAspectFill
self.view.layer.addSublayer(layer)
self.player.play()
}
Mesmo depois que o controlador é destruído e não está mais em uso, recebo esta mensagem de log a cada segundo ou mais:
AQDefaultDevice (173): skipping input stream 0 0 0x0
Não estou perguntando como ocultar esses logs. Eu sei como fazer isso definindo OS_ACTIVITY_MODE
para disable
( Veja isso para ocultar esses logs ). Minha preocupação é que o filme ainda esteja sendo reproduzido de alguma forma, mesmo depois que o controlador for destruído. Existe algo de errado na maneira como estou interpretando o filme. Ou preciso executar uma limpeza adicional?
Respostas:
Eu tenho esse problema ao usar o AVPlayer Foundation no iOS Simulator (xcode 8.1) .No entanto, ele não registra mais em dispositivos iOS. Na minha opinião, é um bug de log.O jogador ou a camada é destruída.
atualizar
Eu tenho isso para você corrigir mensagens de log indesejadas
fonte
Não, você não faz nada errado. Este é um erro nos logs do Xcode8 + iOS10.
Podemos contorná-lo desta maneira (o dispositivo e o simulador precisam de valores diferentes):
Adicione o Nome
OS_ACTIVITY_MODE
e o Valor${DEBUG_ACTIVITY_MODE}
e verifique-o (em Produto -> Esquema -> Editar Esquema -> Executar -> Argumentos -> Ambiente).Adicionar configuração definida pelo usuário
DEBUG_ACTIVITY_MODE
, em seguida, adicioneAny iOS Simulator SDK
porDebug
e configurá-lo de valor paradisable
(em Projeto -> configurações de compilação -> + -> configuração definida pelo usuário)fonte
Não é realmente uma resposta, mas mais uma pista que pode ajudar alguém a depurar isso ...
Comecei a receber esse aviso assim que removi a estrutura do AVFoundation do meu projeto do Xcode 9 / iOS 11. Estou usando o AVFoundation (especificamente AVPlayer e AVPlayerLayer), mas ele ainda foi executado e compilado corretamente após remover a estrutura do editor de Frameworks e bibliotecas vinculadas do destino e removê-lo da pasta Frameworks (eu estava tentando eliminar um aviso de tempo de execução diferente) .
Adicioná-lo novamente através do editor de Frameworks e bibliotecas vinculadas eliminou os avisos de tempo de execução no console.
fonte