Tengo un video corto en mi máquina local. Estoy intentando abrirlo usando NSWorkspace en QuickTime Player.

let stringUrl = "~/Desktop/myrec.mov"
let url = URL(string: stringUrl)!

let config = NSWorkspace.OpenConfiguration()
config.activates = true

NSWorkspace.shared.open(
    [url],
    withApplicationAt: URL(string: "~/Applications/QuickTime Player")!,
    configuration: config
)

El error que estoy recibiendo es:

Fatal error: Unexpectedly found nil while unwrapping an Optional value: file cap/cap.swift

Lo cual tiene que ver con que withApplicationAt es la URL incorrecta y devuelve nil.

Estoy seguro de que withApplicationAtURL está equivocado, pero no tengo idea de cómo encontrar la URL de la aplicación QuickTime Player.

Soy muy nuevo en Swift y tengo problemas para leer los documentos, especialmente porque no parecen estar actualizados (por ejemplo, mi compilador dice que openFile está obsoleto y me llevó a open).

Tampoco estoy seguro de si esta es la mejor o correcta manera de lograr lo que estoy tratando de hacer (abrir un pequeño video local en QuickTime Player).

¡Cualquier recomendación, consejo, consejo o respuesta será muy apreciada!

0
Algebra8 24 ene. 2021 a las 20:57

1 respuesta

La mejor respuesta

Prueba esto. Funciona en mi Mac:

let stringUrl = "/Users/whoever/Desktop/myrec.mov"
let url = URL(fileURLWithPath: stringUrl)

let config = NSWorkspace.OpenConfiguration()
config.activates = true

NSWorkspace.shared.open(
    [url],
    withApplicationAt: URL(fileURLWithPath: "/System/Applications/QuickTime Player.app"),
    configuration: config
)

Tenga en cuenta que reemplacé el inicializador de URL con el correcto. También tenga en cuenta que cambié la ruta de QuickTime Player con la que me da Finder (haga clic con el botón derecho mientras mantiene presionada la tecla de opción).

1
idmean 24 ene. 2021 a las 18:22