Flash-security Einstellungen - Listening für ein close-Ereignis aus?
Wenn Sie mit Flash mit ein Mikrofon oder eine Kamera, wird der Benutzer aufgefordert, um Zugriff auf diese Geräte. Dies erfolgt durch das eingebaute Bedienfeld "Globale Sicherheitseinstellungen".
Gibt es eine Möglichkeit, um benachrichtigt zu werden, indem Sie eine Ereignisprozedur, wenn der Benutzer auf die schließen-Schaltfläche das Bedienfeld für die Sicherheitseinstellungen? Dies scheint nicht möglich zu sein...
Dem Mikrofon, ist es möglich, ein status-Ereignis aus, wenn der Benutzer ändert die Einstellungen im Bedienfeld "Sicherheit", aber dieses Ereignis wird ausgelöst, während der Benutzer noch die Systemsteuerung öffnen.
- Warum brauchen Sie das? Ich bin einfach nur neugierig - implementierte ich mehrere Kamera+Mikrofon in Flash Player-Anwendungen mit ActionScript 3 und hatte nie ein verlangen für das, was Sie gefragt haben. Vielleicht möchten Sie erklären, was Sie versuchen zu erreichen, ich könnte mehr helfen. Es gibt einige nützliche events werden ausgelöst durch
Camera
,Microphone
und andere Verwandte Objekte, die Sie gut zu nutzen, statt. - Ein einfaches Beispiel: ich will zu initialisieren, mein Mikrofon recording code nach dem Benutzer geschlossen wurde das Bedienfeld "Sicherheit". Sicher, ich kann es tun, indem er dem mic status-Ereignis, aber dieses Ereignis wird jedes mal ausgelöst, wenn der Benutzer klickt auf "Zulassen" oder "Verweigern" während noch in der Systemsteuerung. Es kann sehr nützlich sein, zu wissen, dass das panel wurde geschlossen und starten Sie eine bestimmte Aufgabe.
- Da außerdem das Bedienfeld "Sicherheit" zu Fragen, um zu erlauben oder zu verweigern, die das Mikrofon verwenden kann geknallt werden öffnen sich ohne mein wissen, ich brauche, um benachrichtigt zu werden, über ihn und auch benachrichtigt werden, wenn es geschlossen wurde, so kann ich die geeigneten Maßnahmen ergreifen-je nachdem, was der Benutzer gewählt hat, zu ermöglichen. Zum Beispiel, wenn der Benutzer verweigert den Zugriff auf sein Mikrofon, ich muss Ihnen sagen, dass Sie nicht in der Lage, die Anwendung zu verwenden.
- Soweit ich weiß (und erinnern), es gibt nichts dergleichen in Flash Player. Ihre beste Wette ist, um auf Ereignisse zu reagieren, die aus Kamera und Mikrofon, so dass Sie auch keine sorgen zu machen, wer oder was hat verursacht den Einstellungen-dialog, um pop-up. Sie verpassen nichts, außer bei einem Klick auf Zulassen oder Verweigern, wird der dialog in der Regel geschlossen. Es ist ein Fehler jedoch, der verhindert, dass dies geschieht gelegentlich, und sogar abstürzt, die Spieler auch.
- In der FP-10.3 mindestens, wenn Sie auf Zulassen oder Verweigern den dialog nicht schließen. Aber es sendet eine EventStatus der microphone-Instanz. Diese Veranstaltung ist die einzige, die wir haben zu prüfen, ob der Zugang gewährt wurde oder nicht. Wenn Sie Lesen Sie die Kommentare im Adobe bug-tracker (link unten) sehen Sie, warum dies wichtig sein kann zu wissen, wenn das Bedienfeld angezeigt wird, und wenn es geschlossen wurde. Natürlich können Sie einfach ignorieren das panel, sondern in einer komplexen Anwendung, kann es schwierig sein zu verwalten, die Nebenwirkungen, verursacht durch Sie, da Sie nie wissen, wenn ein Benutzer öffnet es und was wird getan werden.
- vielleicht ein Fokus-event auf dem swf?
- Ok, ich sehe wo das alles hinführen wird. Ich habe nicht 10.3 hier, also werde ich haben, um zu schlafen, auf alle diese und überprüfen Sie später. Ich kann sagen, eine Sache jetzt aber - wenn der dialog nicht mehr geschlossen auf Zulassen oder Verweigern, die in meinen Augen wäre, wo das problem liegt, denn das ist einfach nur dumm :/
Du musst angemeldet sein, um einen Kommentar abzugeben.
Stieß ich auf diese, wenn Sie versuchen, um die Suche nach einer Lösung.
Flash Player bug report MIT WORKAROUND
Habe ich noch nicht getestet das umgehen, aber es sollte noch arbeiten? Viel Glück.
Bearbeiten:
Für jeden, der nicht/wird nicht auf die Adobe-bug-tracker, hier ist der workaround Zitat von Philippe Piernot:
call-security panel ( wie ns.addStream(mic))
BitmapData.draw()
hack vor. Wenn das funktioniert, ist eine große, sauber (keine dreckigen Gefühl) Lösung! Fast möchte ich es jetzt versuchen, so kann ich Ihnen die plus 1!if (e.stageX >= 0 && e.stageX < stage.stageWidth && e.stageY >= 0 && e.stageY < stage.stageHeight) ...
doStuff
wird nur ausgeführt, nachdem der Benutzer bewegt die Maus nach dem schließen der Sicherheits-Panel. So, während Sie diese Problemumgehung funktioniert möglicherweise die meisten der Zeit, wird es manchmal führendoStuff
viel später als erwartet.Ich haben beschlossen, dieses Problem in der folgenden Weise:
Überprüfen Sie meine volle util-Klasse SecurityPanelUtil, die zeigt, dass Einstellungen und dann Bearbeiten Sie es in der Nähe und informiert über Rückrufe sofort.
Das panel ist heimlich gerendert mit der Flash-eigenen display-engine. Um dies zu tun Sie im geheimen fügen Sie dem Bedienfeld, um die Anzeige der Liste von der Bühne.
Können Sie erkennen dies durch die überprüfung, ob die Bühne.getChildAt(stage.numChildren-1) gleich null. Das ist eine sonst Unmögliche Szenario, dass zeigt, die Existenz der Systemsteuerung.