Estoy reproduciendo video de un 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()
}
Incluso después de que el controlador se destruye y ya no está en uso, recibo este mensaje de registro cada segundo más o menos:
AQDefaultDevice (173): skipping input stream 0 0 0x0
No estoy preguntando cómo ocultar estos registros. Sé cómo hacerlo estableciendo OS_ACTIVITY_MODE
en disable
( Consulte esto para saber cómo ocultar estos registros ). Mi preocupación es que la película todavía se puede reproducir de alguna manera incluso después de que se destruya el controlador. ¿Hay algo malo en la forma en que estoy reproduciendo la película? ¿O necesito realizar alguna limpieza adicional?
Respuestas:
Tengo este problema cuando uso AVPlayer Foundation en iOS Simulator (xcode 8.1). Sin embargo, ya no se registra en dispositivos iOS. En mi opinión, es un error de registro. El jugador o la capa se destruyen.
actualizar
Tengo esto para que arregles los mensajes de registro no deseados
fuente
No, no haces nada malo. Este es un error con los registros en Xcode8 + iOS10.
Podemos evitarlo de esta manera (el dispositivo y el simulador necesitan valores diferentes):
Agregue el nombre
OS_ACTIVITY_MODE
y el valor${DEBUG_ACTIVITY_MODE}
y verifíquelo (en Producto -> Esquema -> Editar esquema -> Ejecutar -> Argumentos -> Medio ambiente).Añadir configuración definida por el usuario
DEBUG_ACTIVITY_MODE
, a continuación, añadirAny iOS Simulator SDK
aDebug
y establecer su valor adisable
(en proyecto -> configuración de generación -> + -> Configuración definida por el usuario)fuente
No es realmente una respuesta, pero es más una pista que podría ayudar a alguien a depurar esto ...
Comencé a recibir esta advertencia tan pronto como eliminé el marco de AVFoundation de mi proyecto Xcode 9 / iOS 11. Estoy usando AVFoundation (específicamente AVPlayer y AVPlayerLayer), pero aún así se ejecutó y compiló bien después de eliminar el marco del editor Linked Frameworks and Libraries del objetivo, y luego eliminarlo de la carpeta Frameworks (estaba tratando de eliminar una advertencia de tiempo de ejecución diferente) .
Agregarlo nuevamente a través del editor Linked Frameworks and Libraries eliminó las advertencias de tiempo de ejecución en la consola.
fuente