Ajouter le scan camera du code-barres ISBN

Le decodage EAN-13/EAN-8 est fait en C# par ZXing.Net (IsbnScanner), conformement
a la decision actee dans CLAUDE.md : le JavaScript ne fournit que les pixels de la
camera, aucune logique de decodage ne lui est confiee.

Le scan se greffe en amont du flux d'ajout par ISBN existant : des qu'un code est
lu et reconnu comme ISBN-13 valide, la recherche de notices est declenchee sans
que l'utilisateur ait a retaper quoi que ce soit. La saisie manuelle reste
accessible en permanence, y compris quand la camera echoue.

Points traites explicitement :
- camera arriere par defaut (facingMode "environment", en "ideal" pour ne pas
  echouer sur un PC sans camera arriere) ;
- liberation de la camera a l'annulation, au succes et au demontage du composant ;
- cadence limitee a ~12 images/s et decodage restreint a la bande centrale
  reduite a 640 px de large : inutile de decoder chaque frame en pleine taille ;
- messages distincts pour permission refusee, absence de camera, camera occupee
  et contexte non securise (getUserMedia exige HTTPS ou localhost : une IP de
  reseau local en http ne marchera jamais, c'est une source de confusion garantie).

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
mathieu
2026-08-17 23:32:05 +02:00
co-authored by Claude Opus 5
parent b619de29c7
commit f7ad9582f6
9 changed files with 585 additions and 2 deletions
+3
View File
@@ -26,6 +26,9 @@
<ItemGroup>
<ProjectReference Include="..\MaBibli.Api\MaBibli.Api.csproj" />
<!-- Le décodeur de code-barres vit côté client, mais c'est du C# pur (aucune dépendance
au navigateur) : il se teste comme n'importe quelle bibliothèque. -->
<ProjectReference Include="..\MaBibli.Client\MaBibli.Client.csproj" />
<ProjectReference Include="..\MaBibli.Shared\MaBibli.Shared.csproj" />
</ItemGroup>