View in English

  • Apple Developer
    • Get Started

    Explore Get Started

    • Overview
    • Learn
    • Apple Developer Program

    Stay Updated

    • Latest News
    • Hello Developer
    • Platforms

    Explore Platforms

    • Apple Platforms
    • iOS
    • iPadOS
    • macOS
    • tvOS
    • visionOS
    • watchOS
    • App Store

    Featured

    • Design
    • Distribution
    • Games
    • Accessories
    • Web
    • Home
    • CarPlay
    • Technologies

    Explore Technologies

    • Overview
    • Xcode
    • Swift
    • SwiftUI

    Featured

    • Accessibility
    • App Intents
    • Apple Intelligence
    • Games
    • Machine Learning & AI
    • Security
    • Xcode Cloud
    • Community

    Explore Community

    • Overview
    • Meet with Apple events
    • Community-driven events
    • Developer Forums
    • Open Source

    Featured

    • WWDC
    • Swift Student Challenge
    • Developer Stories
    • App Store Awards
    • Apple Design Awards
    • Apple Developer Centers
    • Documentation

    Explore Documentation

    • Documentation Library
    • Technology Overviews
    • Sample Code
    • Human Interface Guidelines
    • Videos

    Release Notes

    • Featured Updates
    • iOS
    • iPadOS
    • macOS
    • watchOS
    • visionOS
    • tvOS
    • Xcode
    • Downloads

    Explore Downloads

    • All Downloads
    • Operating Systems
    • Applications
    • Design Resources

    Featured

    • Xcode
    • TestFlight
    • Fonts
    • SF Symbols
    • Icon Composer
    • Support

    Explore Support

    • Overview
    • Help Guides
    • Developer Forums
    • Feedback Assistant
    • Contact Us

    Featured

    • Account Help
    • App Review Guidelines
    • App Store Connect Help
    • Upcoming Requirements
    • Agreements and Guidelines
    • System Status
  • Quick Links

    • Events
    • News
    • Forums
    • Sample Code
    • Videos
 

Videos

Abrir menú Cerrar menú
  • Colecciones
  • Todos los videos
  • Información

Más videos

  • Información
  • Resumen
  • Código
  • Mejora la experiencia con la cámara gracias a los controles de captura

    Aprende a personalizar los controles de captura en tus experiencias con la cámara. Mostraremos cómo tomar fotos con los controles de captura, incluida la compatibilidad con los AirPods y cómo ajustar la configuración con Control de Cámara.

    Capítulos

    • 0:00 - Introducción
    • 2:51 - Captura física
    • 3:01 - Manejo de eventos
    • 6:39 - Captura remota con AirPods
    • 10:00 - Control de Cámara

    Recursos

    • Creating a camera experience for the Lock Screen
    • Forum: Photos & Camera
    • Supporting Continuity Camera in your tvOS app
    • DockKit
    • Creating a camera extension with Core Media I/O
    • Accessing the camera while multitasking
    • Supporting Continuity Camera in your macOS app
    • Scanning data with the camera
    • AVMultiCamPiP: Capturing from Multiple Cameras
    • Capturing photos with depth
    • AVFoundation
    • Capture setup
      • Video HD
      • Video SD

    Videos relacionados

    WWDC24

    • Build a great Lock Screen camera capture experience

    WWDC23

    • Discover Continuity Camera for tvOS
    • Support external cameras in your iPadOS app
  • Buscar este video…
    • 5:35 - Initial PhotoCapture view setup

      import SwiftUI
      
      struct PhotoCapture: View {
          var body: some View {
              VStack {
                  CameraView()
              }
          }
      }
    • 5:37 - Connecting a button to the camera model

      import SwiftUI
      
      struct PhotoCapture: View {
          let camera = CameraModel()
          var body: some View {
              VStack {
                  CameraView()
                  Button(action: camera.capturePhoto) {
                      Text("Take a photo")
                  }
              }
          }
      }
    • 6:10 - Importing AVKit

      import AVKit
      import SwiftUI
      
      struct PhotoCapture: View {
          let camera = CameraModel()
          var body: some View {
              VStack {
                  CameraView()
                  Button(action: camera.capturePhoto) {
                      Text("Take a photo")
                  }
              }
          }
      }
    • 6:14 - Setting up onCameraCaptureEvent view modifier

      import AVKit
      import SwiftUI
      
      struct PhotoCapture: View {
          let camera = CameraModel()
          var body: some View {
              VStack {
                  CameraView()
                  .onCameraCaptureEvent { event in
                      if event.phase == .ended {
                         camera.capturePhoto()
                      }
                  }
                  Button(action: camera.capturePhoto) {
                      Text("Take a photo")
                  }
              }
          }
      }
    • 8:53 - Default sound for onCameraCaptureEvent view modifier

      .onCameraCaptureEvent { event
      	if event.phase == .ended {
         	camera.capturePhoto() 
        }
      }
    • 9:13 - Play photo shutter sound on AirPod stem click

      .onCameraCaptureEvent(defaultSoundDisabled: true) { event in
          if event.phase == .ended {a
              if event.shouldPlaySound {d
                  event.play(.cameraShutter)
              }
          }
          camera.capturePhoto()
       }
    • 14:46 - Add a build-in zoom slider to Camera Control

      captureSession.beginConfiguration()
      
      // configure device inputs and outputs
      
      if captureSession.supportsControls {
          let zoomControl = AVCaptureSystemZoomSlider(device: device)
      
          if captureSession.canAddControl(zoomControl) {
              captureSession.addControl(zoomControl)
          }
      }
      
      captureSession.commitConfiguration()
    • 15:40 - Modifying the built-in zoom slider to receive updates when zoom changes

      let zoomControl = AVCaptureSystemZoomSlider(device: device) { [weak self] zoomFactor in
          self?.updateUI(zoomFactor: zoomFactor)
      }
    • 16:46 - Adding a custom reaction-effects picker alongside zoom slider

      let reactions = device.availableReactionTypes.sorted { $0.rawValue < $1.rawValue }
      let titles = reactions.map { localizedTitle(reaction: $0) }
      let picker = AVCaptureIndexPicker(“Reactions", symbolName: “face.smiling.inverted”,
          localizedIndexTitles: titles)
      
      picker.isEnabled = device.canPerformReactionEffects
      picker.setActionQueue(sessionQueue) { index in
          device.performEffect(for: reactions[index])
      }
      
      let controls: [AVCaptureControl] = [zoomControl, picker]
      
      for control in controls {
          if captureSession.canAddControl(control) {
              captureSession.addControl(control)
          }
      }
    • 0:00 - Introducción
    • Obtén más información sobre el uso de AVKit y AVFoundation para mejorar las interacciones del usuario en las apps de cámara. Ahora puedes asignar mediante programación gestos de botones físicos, como “subir y bajar” el volumen, a acciones de la cámara, lo que permite a las personas hacer fotos e iniciar la grabación de video con los botones del teléfono. Una nueva función de iOS 26 es el control remoto de la cámara con AirPods. Obtén información sobre los botones físicos compatibles, cómo usar la API AVCaptureEventInteraction y una descripción general de Control de cámara en el iPhone 16.

    • 2:51 - Captura física
    • AVCaptureEventInteraction es compatible con el botón de acción; los detalles de configuración se pueden encontrar en la sesión del año pasado Extiende los controles de tu app a través del sistema.

    • 3:01 - Manejo de eventos
    • AVCaptureEventInteraction es una API que te permite controlar el ciclo de vida de las pulsaciones de botones físicos dentro de las apps de la cámara. Proporciona tres fases de eventos: “comenzó”, “canceló” y “finalizó”. Esta fase "finalizó" en la que el objeto de la cámara debe iniciar la captura. La API distingue entre acciones principales y secundarias, activadas por botones específicos (bajar volumen, Acción, Control de cámara para la principal; subir el volumen para la secundaria). Este diseño permite modularidad y flexibilidad en el diseño de las apps. Los desarrolladores de SwiftUI pueden acceder a esta funcionalidad a través del modificador de vista “onCameraCaptureEvent”. Al importar la estructura de AVKit y adjuntar este modificador a CameraView, puedes habilitar la captura de fotos con botones físicos en solo unas pocas líneas de código, imitando el comportamiento de la app integrada Cámara.

    • 6:39 - Captura remota con AirPods
    • A partir de iOS 26, los AirPods equipados con el chip H2 permitirán el control remoto de la cámara mediante clics del vástago. Los usuarios pueden configurar esta función en la app Ajustes y elegir qué acción de clic activa la captura de fotos. Se introdujo una nueva API para proporcionar comentarios de audio para estos clics de plicas, con un tono predeterminado, aunque puedes personalizar este sonido para tus apps específicas. Esta mejora permite a las personas capturar momentos con las manos libres y garantiza la confirmación de sus comandos mediante señales de audio.

    • 10:00 - Control de Cámara
    • AVCaptureControl es una función nueva del iPhone 16 que permite crear controles físicos de hardware para las interfaces de la cámara. Permite a las personas iniciar apps de la cámara y ajustar la configuración rápidamente y puede actuar como un botón del obturador. El control admite dos tipos principales de ajustes: reguladores (continuos o discretos) para valores numéricos y selectores para elementos de una lista. Estos controles se definen en la estructura AVFoundation. Puedes añadir controles definidos por el sistema para el zoom o la exposición, o crear controles personalizados con comportamientos definidos por la app. Estos controles se añaden a una AVCaptureSession y la app responde a las interacciones a través de controladores de acciones o de observación de valores clave (KVO) y actualiza la IU en consecuencia. Para mejorar la funcionalidad de la app Cámara, utiliza Control de cámara para añadir fácilmente controles proporcionados por el sistema, como el zoom, que solo requiere una línea de código. Sin embargo, es fundamental asegurarse de que la sesión acepte el control y sincronizar la IU con el estado del control para evitar problemas como factores de zoom obsoletos. Al crear controles personalizados, ten en cuenta que Control de cámara está diseñado específicamente para capturar experiencias. Un buen ejemplo de control personalizado es un selector que permite a las personas seleccionar efectos o filtros. Este control debe funcionar más cerca de la sesión de captura que la IU. Puedes definir efectos, inicializar el selector con nombres de efecto y desactivar el control cuando no sea compatible. Al dirigir la acción a la cola de sesiones, puedes garantizar el aislamiento y la gestión adecuados del dispositivo. Con los Controles de captura puedes crear apps de cámara de primer nivel que capten la atención de las personas.

Developer Footer

  • Videos
  • WWDC25
  • Mejora la experiencia con la cámara gracias a los controles de captura
  • Open Menu Close Menu
    • iOS
    • iPadOS
    • macOS
    • tvOS
    • visionOS
    • watchOS
    • App Store
    Open Menu Close Menu
    • Swift
    • SwiftUI
    • Swift Playground
    • TestFlight
    • Xcode
    • Xcode Cloud
    • Icon Composer
    • SF Symbols
    Open Menu Close Menu
    • Accessibility
    • Accessories
    • Apple Intelligence
    • Audio & Video
    • Augmented Reality
    • Business
    • Design
    • Distribution
    • Education
    • Games
    • Health & Fitness
    • In-App Purchase
    • Localization
    • Maps & Location
    • Machine Learning & AI
    • Security
    • Safari & Web
    Open Menu Close Menu
    • Documentation
    • Downloads
    • Sample Code
    • Videos
    Open Menu Close Menu
    • Help Guides & Articles
    • Contact Us
    • Forums
    • Feedback & Bug Reporting
    • System Status
    Open Menu Close Menu
    • Apple Developer
    • App Store Connect
    • Certificates, IDs, & Profiles
    • Feedback Assistant
    Open Menu Close Menu
    • Apple Developer Program
    • Apple Developer Enterprise Program
    • App Store Small Business Program
    • MFi Program
    • Mini Apps Partner Program
    • News Partner Program
    • Video Partner Program
    • Security Bounty Program
    • Security Research Device Program
    Open Menu Close Menu
    • Meet with Apple
    • Apple Developer Centers
    • App Store Awards
    • Apple Design Awards
    • Apple Developer Academies
    • WWDC
    Read the latest news.
    Get the Apple Developer app.
    Copyright © 2026 Apple Inc. All rights reserved.
    Terms of Use Privacy Policy Agreements and Guidelines