Maison > Article > interface Web > Comment utiliser le plug-in Flash pour appeler la caméra du PC et l'intégrer dans la page TML
La raison pour laquelle j'ai écrit cet article est principalement due à une nouvelle exigence soulevée par le chef d'équipe : utiliser le navigateur pour appeler l'appareil photo de l'ordinateur afin de réaliser la fonction de prise de photos instantanée. J'ai vérifié beaucoup d'informations sur Internet, et pour une raison ou une autre, j'ai finalement choisi d'utiliser un plug-in flash pour appeler la caméra du PC. Bien sûr, cette exigence est basée sur l'architecture B/S, je réfléchis donc à la façon de l'intégrer dans la page HTML frontale.
Digression
Bien sûr, l'encapsulation n'a pas été envisagée ici. Elle est principalement destinée à la mise en œuvre en premier, et les travaux ultérieurs seront résumés en fonction de l'activité et encapsulés en général. composants. Bon, sans plus tarder, concentrons-nous sur les points clés.
Plugin d'intégration
Utiliser les balises d'objet et d'intégration
Affichage du code
<span style="font-family:Microsoft YaHei;"><p style="margin-top:-30px;margin-left:-120px;"> <object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,0,0" width="490" height="390" id="Untitled-1" align="middle"> <param name="allowScriptAccess" value="sameDomain" /> <param name="movie" value="cam.swf" /> <param name="quality" value="high" /> <param name="bgcolor" value="#ffffff" /> <embed src="cam.swf" quality="high" bgcolor="#ffffff" width="490" height="390" name="cam" align="middle" allowScriptAccess="sameDomain" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" /> </object> </p></span>
Cette méthode utilise les balises Object et Embed. Vous pouvez voir que de nombreux paramètres d'objet et de nombreux attributs d'intégration sont répétés. Compatibilité des navigateurs, certains navigateurs prennent en charge les objets et certains prennent en charge l'intégration, c'est pourquoi vous devez changer les deux endroits lorsque vous souhaitez modifier les paramètres Flash. Cette méthode a toujours été la méthode officielle de Macromedia, garantissant au maximum les fonctionnalités de Flash sans problèmes de compatibilité.
Mais à y regarder maintenant, il y a encore de gros problèmes.
Tout d'abord, la vérification échoue car la balise embed intégrée pour la compatibilité n'est pas conforme à la spécification W3C. Bien sûr, si vous ne vous souciez pas des règles ou des règlements, c’est une autre affaire.
Deuxièmement, pour diverses raisons, Microsoft a restreint le mode d'utilisation de l'ActiveX d'IE après le sp2. Autrement dit, il y a une boîte virtuelle dans l'ActiveX sur la page, qui oblige l'utilisateur à cliquer une fois pour une interaction normale. . Flash est intégré à la page Web en tant qu'ActiveX, il sera donc également affecté. Seule l'intégration de Flash via JS peut résoudre ce problème.
Encore une fois, il n'y a pas de détection de version Flash. Si la version du plug-in Flash du navigateur n'est pas suffisante, ou si votre fichier swf ne peut pas être affiché normalement, ou si une boîte de confirmation d'installation d'ActiveX apparaîtra - cette boîte. est ennuyeux pour de nombreux utilisateurs. C'est effrayant à dire.
Utilisez uniquement la balise object
Affichage du code
<span style="font-family:Microsoft YaHei;"><p style="margin-top:-30px;margin-left:-120px;"> <object type="application/x-shockwave-flash data="c.swf?path=cam.swf" width="490" height="390"> <param name="cam" value="c.swf?path=cam.swf" /> <img src="defqr.png" width="550" height="400" alt="" /> </object> </p></span>
Cette méthode utilise uniquement la balise Object. , C'est Flash satay. Comme il n'y a pas de balise d'intégration, il peut passer la vérification. Il s'agit d'une méthode standard d'intégration de Flash. La compatibilité du navigateur est également bonne, mais il reste des problèmes.
Tout d'abord, vous avez besoin d'un swf titulaire pour charger votre swf cible afin de garantir la capacité de flux dans IE. Si vous avez besoin de transmettre des paramètres via flashvars, ou d'interagir avec le JS de la page, ce sera très. gênant.
Deuxièmement, tout comme la première méthode, une boîte de dialogue ActiveX apparaîtra sans détection de version.
Encore une fois, certains navigateurs de versions inférieures (comme les versions inférieures de Safari, etc.) ne sont pas d'accord avec cette méthode et ont une mauvaise compatibilité avec elle.
Utilisez uniquement la balise embed
Affichage du code
<span style="font-family:Microsoft YaHei;"><p style="margin-top:0px;margin-left:-70px;"> <embed id="cam" src="cam.swf" loop="false" menu="false" quality="best" bgcolor="#ffffff" width="450" height="350" name="webcam" align="middle" wmode="transparent" allowscriptaccess="always" allowfullscreen="false" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" flashvars="width=490&height=390&objid=cameradialog"> </p></span>
Cette méthode utilise uniquement la balise Embed, effet de comparaison D'une manière générale, il reste très bon. La compatibilité du navigateur est également bonne et il peut être chargé. Bien entendu, la balise embed n’étant pas conforme aux spécifications du W3C, cette méthode n’est pas recommandée.
Utilisez JavaScript pour intégrer
Utilisez JS pour charger des plug-ins Flash Il existe de nombreuses méthodes sur Internet, et il existe également de nombreux bons plug-ins JS pour. tout le monde à choisir. Je n'utiliserai SWFObject que pour le présenter brièvement ici.
Tout d'abord, vous devez télécharger un package de plug-in SWFObject, qui contient un script JS. Il s'agit du fichier de script que vous devez importer. Il comprend également deux exemples HTML que vous pouvez imiter. Bien entendu, vous pouvez également consulter le site Web de SWFObject pour en savoir plus. Veuillez cliquer ici.
Affichage du code
<span style="font-family:Microsoft YaHei;"><script type="text/javascript" src="swfobject.js"></script> <script type="text/javascript"> swfobject.registerObject("myId", "9.0.0", "cam.swf"); </script></span>
<span style="font-family:Microsoft YaHei;"><p style="margin-top:-30px;margin-left:-120px;"> <object id="myId" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="490" height="390"> <param name="movie" value="cam.swf" /> <!--[if !IE]>--> <object type="application/x-shockwave-flash" data="cam.swf" width="490" height="390"> <!--<![endif]--> <p> <h1>Alternative content</h1> <p><a href="http://www.adobe.com/go/getflashplayer"><img src="http://www.adobe.com/images/shared/download_buttons/get_flash_player.gif" alt="Get Adobe Flash player" /></a></p> </p> <!--[if !IE]>--> </object> <!--<![endif]--> </object> </p></span>
Rendu
Conclusion
En comparant ces méthodes, je préfère utiliser la méthode d'intégration JS pour charger le plug-in Flash. Cette méthode garantit non seulement la réalisation de toutes les fonctions de Flash, mais fonctionne également bien en termes de compatibilité avec les différents navigateurs, et JS It. peut également fournir des fonctions plus étendues et, plus important encore, il peut être réutilisé par davantage de personnes, réduisant ainsi le code redondant inutile.
Pour plus de plug-ins flash permettant d'appeler la caméra du PC et comment l'intégrer dans une page TML, veuillez faire attention au site Web PHP chinois pour les articles connexes !