Le seguenti API relative all'audio di ActionScript 3.0 presentano le seguenti limitazioni di sicurezza:
-
Il metodo
SoundMixer.computeSpectrum()
è sempre consentito per il codice in esecuzione nella stessa sandbox di sicurezza del file audio. Per il codice in esecuzione in altre sandbox esistono invece dei controlli di sicurezza.
-
Il metodo
SoundMixer.stopAll()
è sempre consentito per il codice in esecuzione nella stessa sandbox di sicurezza del file audio. Per i file di altre sandbox esistono invece dei controlli di sicurezza.
-
La proprietà
id3
della classe Sound è sempre consentita per i file SWF che si trovano nella stessa sandbox del file audio. Per il codice in esecuzione in altre sandbox esistono invece dei controlli di sicurezza.
Ogni file audio presenta due tipi di sandbox associate, una per il contenuto e una per il titolare:
-
Il dominio di origine del file audio determina la sandbox del contenuto, che, a sua volta, determina se i dati audio possono essere estratti mediante la proprietà
id3
e il metodo
SoundMixer.computeSpectrum()
.
-
L'oggetto che avvia la riproduzione audio determina la sandbox del titolare, che, a sua volta, determina se la riproduzione del file audio può essere interrotta mediante il metodo
SoundMixer.stopAll()
.
Quando caricate l'audio mediante il metodo
load()
della classe Sound, potete specificare un parametro
context
, che è un oggetto SoundLoaderContext. Se impostate la proprietà
checkPolicyFile
dell'oggetto SoundLoaderContext su
true
, il runtime verifica la presenza di un file di criteri degli URL sul server da cui viene caricato l'audio. Se esiste un file di criteri degli URL che consente l'accesso al dominio del codice che carica, il codice può accedere alla proprietà
id
dell'oggetto Sound; in caso contrario, non vi può accedere. Inoltre, l'impostazione della proprietà
checkPolicyFile
può attivare il metodo
SoundMixer.computeSpectrum()
per i file audio caricati.
Potete utilizzare il metodo
SoundMixer.areSoundsInaccessible()
per sapere se una chiamata al metodo
SoundMixer.stopAll()
non consente l'interruzione della riproduzione audio perché la sandbox di uno o più titolari non è accessibile al chiamante.
Mediante la chiamata al metodo
SoundMixer.stopAll()
viene interrotta la riproduzione dei file audio la cui sandbox del titolare corrisponde a quella del chiamate di
stopAll()
. Tale metodo consente inoltre di interrompere la riproduzione audio avviata da file SWF che hanno chiamato il metodo
Security.allowDomain()
per consentire l'accesso da parte del dominio del file SWF che chiama il metodo
stopAll()
. Tutte le altre riproduzioni audio non vengono interrotte e la presenza di tali file audio può essere rilevata chiamando il metodo
SoundMixer.areSoundsInaccessible()
.
Se si chiama il metodo
computeSpectrum()
, tutti i file audio in riproduzione devono appartenere alla stessa sandbox dell'oggetto che chiama il metodo oppure provenire da un'origine che ha acquisito l'autorizzazione di accesso alla sandbox del chiamante; in caso contrario, viene generata un'eccezione SecurityError. Per file audio caricati da audio incorporati in una libreria di un file SWF, l'autorizzazione viene concessa mediante chiamata al metodo
Security.allowDomain()
nel file SWF caricato. Per file audio caricati da fonti diverse dai file SWF (originati da file mp3 caricati o da file video), è necessario un file di criteri degli URL che conceda l'autorizzazione di accesso ai dati del file multimediale caricato.
Per ulteriori informazioni, vedete
Controlli autore (sviluppatore)
e
Controlli del sito Web (file di criteri)
.
Per accedere ai dati audio da flussi RTMP, dovete concedere l'accesso al server. Utilizzate la proprietà
Client.audioSampleAccess
ActionScript lato server per consentire l'accesso a directory specifiche su Flash Media Server. Per ulteriori informazioni, vedete la
Guida di riferimento di ActionScript lato server
.