So rufen Sie mit dem Flash-Plugin die Kamera des PCs auf und binden diese in die TML-Seite ein

So rufen Sie mit dem Flash-Plugin die Kamera des PCs auf und binden diese in die TML-Seite ein
Vorwort

Der Grund für das Schreiben dieses Artikels liegt hauptsächlich darin, dass der Teamleiter eine neue Anforderung gestellt hat: die Verwendung des Browsers zum Aufrufen der Kamera des Computers, um die Funktion zum sofortigen Aufnehmen von Fotos zu realisieren. Ich habe im Internet zahlreiche Informationen geprüft und mich aus verschiedenen Gründen letztendlich für die Verwendung des Flash-Plugins zum Aufrufen der PC-Kamera entschieden. Diese Anforderung basiert natürlich auf der B/S-Architektur, daher habe ich darüber nachgedacht, wie ich sie in die Front-End-HTML-Seite einbetten kann.

Nicht zum Thema

Natürlich wurde die Kapselung hier nicht berücksichtigt. Der Hauptzweck besteht zunächst darin, die Implementierung durchzuführen. Anschließende Arbeiten werden je nach Geschäft abstrahiert und in gemeinsame Komponenten gekapselt. Okay, genug Unsinn, kommen wir zum Punkt.

Plugin einbetten

Verwenden der Objekt- und Einbettungs-Tags

Code-Schaufenster

Code kopieren
Der Code lautet wie folgt:

<span style="font-family:Microsoft YaHei;"><div style="margin-top:-30px;margin-left:-120px;">
<Objekt-Klassen-ID="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000"
Codebasis="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,0,0"
Breite="490" Höhe="390" ID="Ohne Titel-1" Ausrichtung="Mitte">
<param name="allowScriptAccess" value="sameDomain" />
<param name="Film" value="cam.swf" />
<param name="Qualität" value="hoch" />
<param name="bgcolor" value="#ffffff" />
<embed src="cam.swf" Qualität="hoch" bgcolor="#ffffff" Breite="490" Höhe="390" Name="cam" Ausrichtung="Mitte" allowScriptAccess="sameDomain"
Typ="Anwendung/x-shockwave-flash" Pluginspage="http://www.macromedia.com/go/getflashplayer" />
</Objekt>
</div></span>

Diese Methode verwendet die Tags „Object“ und „Embed“. Sie können sehen, dass viele Parameter des Objekts und viele Attribute des Embeds wiederholt werden. Browserkompatibilität: Einige Browser unterstützen Objekte, andere unterstützen Einbettungen. Deshalb müssen Sie beim Ändern der Flash-Parameter beide Stellen ändern. Bei dieser Methode handelt es sich um die offizielle Methode von Macromedia, die die Funktionalität von Flash weitestgehend gewährleistet und keine Kompatibilitätsprobleme aufweist.

Doch nun scheint es, als gäbe es immer noch große Probleme.

Erstens kann es die Validierung nicht bestehen, da das aus Kompatibilitätsgründen eingebettete Embed-Tag nicht der W3C-Spezifikation entspricht. Ob Ihnen Standards egal sind oder nicht, ist natürlich eine andere Sache.

Zweitens hat Microsoft aus verschiedenen Gründen den Verwendungsmodus von IE ActiveX nach SP2 eingeschränkt. Das heißt, im ActiveX auf der Seite befindet sich eine virtuelle Box, und der Benutzer muss einmal klicken, um normal interagieren zu können. Flash ist als ActiveX in die Webseite eingebettet und daher ebenfalls betroffen. Dieses Problem kann nur durch die Einbettung von Flash über JS gelöst werden.

Auch hier gibt es keine Flash-Versionserkennung. Wenn die Flash-Plugin-Version des Browsers nicht ausreicht, wird Ihre SWF-Datei möglicherweise nicht normal angezeigt oder es erscheint ein ActiveX-Bestätigungsfenster für die Installation - dieses Fenster ist für viele Benutzer sehr beängstigend.

Verwenden Sie nur das Objekt-Tag

Code-Schaufenster

Code kopieren
Der Code lautet wie folgt:

<span style="font-family:Microsoft YaHei;"><div style="margin-top:-30px;margin-left:-120px;">
<Objekttyp="Anwendung/x-shockwave-flash Daten="c.swf?Pfad=cam.swf" Breite="490" Höhe="390">
<param name="cam" value="c.swf?path=cam.swf" />
<img src="defqr.png"
Breite="550" Höhe="400" alt="" />
</Objekt>
</div></span>

Diese Methode verwendet nur das Objekt-Tag, das eigentlich Flash-Satay ist. Da kein Embed-Tag vorhanden ist, kann die Überprüfung bestanden werden. Es ist eine Standardmethode zum Einbetten von Flash. Die Browserkompatibilität ist ebenfalls gut. Es sieht fast perfekt aus, aber es gibt immer noch Probleme.

Zuerst benötigen Sie eine Halter-SWF, um Ihre Ziel-SWF zu laden und die Stream-Fähigkeit im IE sicherzustellen. Wenn Sie Parameter über Flashvars übergeben oder mit dem JS der Seite interagieren müssen, wird das sehr mühsam.

Zweitens wird wie bei der ersten Methode ein ActiveX-Eingabeaufforderungsfenster ohne Versionserkennung angezeigt.

Auch hier gilt, dass einige Browser mit niedrigeren Versionen (wie etwa Safari mit niedrigerer Version usw.) diesen Ansatz nicht erkennen und nicht damit kompatibel sind.

Verwenden Sie nur das Embed-Tag

Code-Schaufenster

Code kopieren
Der Code lautet wie folgt:

<span style="font-family:Microsoft YaHei;"><div style="margin-top:0px;margin-left:-70px;">
<embed id="cam" src="cam.swf" loop="false" menu="false" quality="best" bgcolor="#ffffff" width="450" ​​\u200b\u200bheight="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">
</div></span>

Diese Methode verwendet nur das Embed-Tag. Verglichen mit der Wirkung ist es immer noch sehr gut. Die Browserkompatibilität ist ebenfalls gut und kann geladen werden. Da das Embed-Tag natürlich nicht den W3C-Spezifikationen entspricht, wird diese Methode nicht empfohlen.

Einbetten mit JavaScript

Es gibt viele Möglichkeiten, mit JS Flash-Plugins im Internet zu laden, und es stehen Ihnen auch viele gute JS-Plugins zur Auswahl. Ich werde SWFObject hier nur kurz vorstellen.

Zuerst müssen Sie ein SWFObject-Plug-In-Paket herunterladen, das ein JS-Skript enthält. Dabei handelt es sich um die Skriptdatei, die Sie importieren müssen. Es enthält außerdem zwei HTML-Beispiele, die Sie nachahmen können. Natürlich können Sie auch die Website von SWFObject besuchen, um mehr zu erfahren. Klicken Sie hier.

Code-Schaufenster

Code kopieren
Der Code lautet wie folgt:

<span style="font-family:Microsoft YaHei;"><script type="text/javascript" src="swfobject.js"></script>
<Skripttyp="text/javascript">
swfobject.registerObject("myId", "9.0.0", "cam.swf");
</script></span>


Code kopieren
Der Code lautet wie folgt:

<span style="font-family:Microsoft YaHei;"><div style="margin-top:-30px;margin-left:-120px;">
<Objekt-ID="meineId" Klasse="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" Breite="490" Höhe="390">
<param name="Film" value="cam.swf" />
<!--[wenn !IE]>-->
<Objekttyp="Anwendung/x-shockwave-flash" Daten="cam.swf" Breite="490" Höhe="390">
<!--<![endif]-->
<div>
<h1>Alternativer Inhalt</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="Adobe Flash Player herunterladen" /></a></p>
</div>
<!--[wenn !IE]>-->
</Objekt>
<!--<![endif]-->
</Objekt>
</div></span>

Rendern

Fazit <br />Im Vergleich zu diesen Methoden empfehle ich die Verwendung von JS-Einbettung zum Laden des Flash-Plugins. Diese Methode stellt nicht nur die Realisierung aller Funktionen von Flash sicher, sondern bietet auch eine gute Kompatibilität mit verschiedenen Browsern. JS kann auch erweiterte Funktionen bereitstellen und, was noch wichtiger ist, es kann von mehr Personen wiederverwendet werden, wodurch unnötiger redundanter Code reduziert wird.

Plug-in-Downloadadresse: SWFObject

<<:  Installationstutorial auf Unternehmensebene unter Verwendung des LAMP-Quellcodes

>>:  So erstellen Sie eine Baidu-Totlink-Datei

Artikel empfehlen

Detaillierte Erläuterung der MySQL-Sicherung und -Wiederherstellung

Vorwort: In den vorherigen Artikeln wurde die Ver...

Detaillierte Erklärung des Explain-Typs in MySQL

Einführung: In vielen Fällen denken viele Leute, ...

HTML-Implementierung eines einfachen Rechners mit detaillierten Ideen

Code kopieren Der Code lautet wie folgt: <!DOC...

So verstecken Sie RAR-Dateien in Bildern

Sie können dieses Logo lokal als .rar-Datei speic...

Tutorial zu HTML-Tabellen-Tags (8): Hintergrundbild-Attribut BACKGROUND

Legen Sie ein Hintergrundbild für die Tabelle fes...

Eine kurze Analyse der Grundkonzepte von HTML-Webseiten

Was ist eine Webseite? Die Seite, die nach dem HT...

Verwenden von js, um den Effekt eines Karussells zu erzielen

Lassen Sie uns heute darüber sprechen, wie Sie mi...

Detaillierte Erklärung der Verwendung von DECIMAL im MySQL-Datentyp

Detaillierte Erklärung der Verwendung von DECIMAL...

Beispielcode für kreisförmigen Hover-Effekt mit CSS-Übergängen

Dieser Artikel stellt vor Online-Vorschau und Dow...

Ausführliches Tutorial zur Installation und Konfiguration von MySQL 8.0.20

In diesem Artikel finden Sie eine ausführliche An...

Beispiel zum Erstellen eines öffentlichen Harbor-Repository mit Docker

Im vorherigen Blogbeitrag ging es um das private ...