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
 

Vidéos

Ouvrir le menu Fermer le menu
  • Collections
  • Toutes les vidéos
  • À propos

Plus de vidéos

  • À propos
  • Résumé
  • Code
  • Amélioration de l’expérience photo avec les commandes de capture

    Apprenez à personnaliser les commandes de capture dans vos expériences caméra. Nous vous montrerons comment prendre des photos avec toutes les commandes de capture physique, y compris la prise en charge des nouveaux AirPods, et comment ajuster les réglages grâce à Camera Control.

    Chapitres

    • 0:00 - Introduction
    • 2:51 - Capture physique
    • 3:01 - Gestion des évènements
    • 6:39 - Capture à distance AirPods
    • 10:00 - Commande de l’appareil photo

    Ressources

    • 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
      • Vidéo HD
      • Vidéo SD

    Vidéos connexes

    WWDC24

    • Build a great Lock Screen camera capture experience

    WWDC23

    • Discover Continuity Camera for tvOS
    • Support external cameras in your iPadOS app
  • Rechercher dans cette vidéo…
    • 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 - Introduction
    • Découvrez comment utiliser AVKit et AVFoundation pour améliorer les interactions utilisateur dans les apps d’appareil photo. Il est désormais possible de mapper par programmation les gestes associés aux boutons physiques, par exemple augmenter ou réduire le volume, à des actions de l’appareil photo. De cette manière, il est alors possible de prendre des photos et de démarrer des vidéos en utilisant les boutons du téléphone. Une nouvelle fonctionnalité d’iOS 26 permet de contrôler à distance l’appareil photo avec des AirPods. Vous découvrirez quels sont les boutons physiques pris en charge, apprendrez à utiliser l’API AVCaptureEventInteraction et vous aurez un aperçu de Camera Control sur l’iPhone 16.

    • 2:51 - Capture physique
    • AVCaptureEventInteraction prend en charge le bouton Action. Les détails relatifs à la configuration sont disponibles dans la session de l’année dernière. ・€・Étendez les commandes de votre app à l’ensemble du système.

    • 3:01 - Gestion des évènements
    • AVCaptureEventInteraction est une API qui permet de contrôler le cycle de vie des pressions sur les boutons physiques dans les apps d’appareil photo. Celle-ci prévoit trois phases d’évènement : « began », « cancelled » et « ended ». La phase « ended » correspond au moment où l’objet appareil photo doit initier la capture. L’API distingue les actions principales et secondaires, déclenchées par des boutons spécifiques (réduction du volume, Action et Camera Control pour les actions principales, et augmentation du volume pour les actions secondaires). Cette conception offre une modularité et de la flexibilité dans la conception des apps. Les développeurs SwiftUI peuvent accéder à cette fonctionnalité via le modificateur de vue onCameraCaptureEvent. En important le framework AVKit et en associant ce modificateur à CameraView, vous pouvez activer la capture de photos à l’aide de boutons physiques en quelques lignes de code seulement, imitant ainsi le comportement de l’app Appareil photo intégrée.

    • 6:39 - Capture à distance AirPods
    • À partir d’iOS 26, les AirPods équipés de la puce H2 offriront la possibilité de contrôler l’appareil photo à distance, à l’aide de clics sur la tige. Il est possible de configurer cette fonctionnalité dans l’app Réglages et de choisir quelle action de clic sur la tige déclenchera la capture de la photo. Une nouvelle API fournit un retour audio pour ces clics de tige, avec une tonalité par défaut qui peut être personnalisée pour vos apps spécifiques. Cette amélioration permet de saisir l’instant sans utiliser les mains, le signal audio donnant la confirmation que l’action a bien été prise en compte.

    • 10:00 - Commande de l’appareil photo
    • AVCaptureControl est une nouvelle fonctionnalité de l’iPhone 16 qui permet de créer des commandes matérielles physiques pour vos interfaces d’appareil photo. Elle permet de lancer des apps d’appareil photo et de définir rapidement les réglages associés, et peut également servir de déclencheur. La commande prend en charge deux types de réglages principaux : les curseurs (continus et distincts) pour les valeurs numériques, et les sélecteurs pour les éléments d’une liste. Ces commandes sont définies dans le framework AVFoundation. Vous pouvez ajouter des commandes définies par le système pour le zoom ou la correction de l’exposition, ou créer des commandes personnalisées avec des comportements définis par l’app. Ces commandes sont ensuite ajoutées à une AVCaptureSession, et l’app répond aux interactions via des gestionnaires d’actions ou Key-Value Observing (KVO), qui mettent à jour l’UI en conséquence. Vous pouvez améliorer les fonctionnalités de l’app d’appareil photo à l’aide de Camera Control, qui permet d’ajouter aisément des commandes fournies par le système, comme le zoom, qui ne requiert qu’une seule ligne de code. Cependant, il est essentiel de s’assurer que la session accepte la commande et de synchroniser l’UI avec l’état de la commande afin d’éviter des problèmes tels que des facteurs de zoom obsolètes. Lorsque vous créez des commandes personnalisées, n’oubliez pas que Camera Control a été spécifiquement conçu pour immortaliser des moments. Un sélecteur permettant de choisir des effets ou des filtres est un exemple de commande personnalisée. Cette commande doit fonctionner plus près de la session de capture que l’UI. Vous pouvez définir des effets, initialiser le sélecteur avec des noms d’effets et désactiver la commande lorsqu’elle n’est pas pris en charge. En ciblant l’action sur la file d’attente de session, vous pouvez garantir une isolation et une gestion adéquates de l’appareil. Grâce à Capture Controls, vous pouvez créer des apps d’appareil photo de qualité professionnelle qui captiveront vos utilisateurs et utilisatrices.

Developer Footer

  • Vidéos
  • WWDC25
  • Amélioration de l’expérience photo avec les commandes de capture
  • 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