Paket | flash.media |
Sınıf | public class SoundLoaderContext |
Miras Alma | SoundLoaderContext Object |
Dil Sürümü: | ActionScript 3.0 |
Çalışma Zamanı Sürümleri: | AIR 1.0, Flash Player 9, Flash Lite 4 |
load()
yöntemine iletilir.
Bu sınıfı kullanırken aşağıdaki güvenlik modelini dikkate alın.
- Çağıran dosyası bir ağ sanal alanı içindeyse ve yüklenecek ses dosyası yerelse sesin yüklenmesine ve çalınmasına izin verilmez.
- Varsayılan olarak, çağıran yerelse ve uzak bir sesi yükleyip çalmayı denerse sesin yüklenmesine ve çalınmasına izin verilmez. Kullanıcı buna izin vermek için açık şekilde izin vermelidir.
- Sesle ilgili belirli işlemler sınırlanmıştır. URL ilke dosyası uygulamadığınız sürece, farklı bir etki alanındaki bir dosyası yüklenen bir sesteki verilere erişemez. Bu kısıtlamanın kapsamındaki sesle ilgili API'ler
Sound.id3
özelliği veSoundMixer.computeSpectrum()
,SoundMixer.bufferTime
veSoundTransform()
yöntemleridir.
Ancak Adobe AIR'de, application
güvenlik sanal alanındaki içerik (AIR uygulamasıyla yüklenen içerik) bu güvenlik sınırlamalarıyla kısıtlanmaz.
Güvenlikle ilgili daha fazla bilgi için, bkz. Flash Player Geliştirici Merkezi Konusu: Güvenlik.
Özellik | Tanımlayan: | ||
---|---|---|---|
bufferTime : Number = 1000
Ses akışına başlanmadan önce akış sesinin arabelleğe önyükleneceği milisaniye sayısı. | SoundLoaderContext | ||
checkPolicyFile : Boolean = false
Uygulamanın sesi yüklemeye başlamadan önce ses sunucusundan bir URL ilke dosyası yüklemeyi denemesi gerekip gerekmediğini belirtir. | SoundLoaderContext | ||
constructor : Object
Belirli bir nesne örneği için sınıf nesnesine veya yapıcı işlevine bir başvuru. | Object |
Yöntem | Tanımlayan: | ||
---|---|---|---|
Yeni bir ses yükleyici bağlam nesnesi oluşturur. | SoundLoaderContext | ||
Bir nesnenin belirli bir özelliğinin tanımlı olup olmadığını gösterir. | Object | ||
Object sınıfının bir örneğinin parametre olarak belirtilen nesnenin prototip zincirinde olup olmadığını gösterir. | Object | ||
Belirtilen özelliğin bulunup bulunmadığını ve numaralandırılabilir olup olmadığını gösterir. | Object | ||
Dinamik bir özelliğin döngü işlemlerinde kullanılabilirliğini ayarlar. | Object | ||
Bu nesnenin, yerel ayara özel kurallara göre biçimlendirilmiş dize temsilini döndürür. | Object | ||
Belirtilen nesnenin dize olarak temsil edilen halini döndürür. | Object | ||
Belirtilen nesnenin temel değerini döndürür. | Object |
bufferTime | özellik |
public var bufferTime:Number = 1000
Dil Sürümü: | ActionScript 3.0 |
Çalışma Zamanı Sürümleri: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Ses akışına başlanmadan önce akış sesinin arabelleğe önyükleneceği milisaniye sayısı.
Global SoundMixer.bufferTime
özelliğini ayarlayarak SoundLoaderContext.bufferTime
değerini geçersiz kılamayacağınızı unutmayın. SoundMixer.bufferTime
özelliği, bir SWF dosyasındaki gömülü akış seslerinin arabellek süresini etkiler ve dinamik olarak oluşturulan Sound nesnelerinden (başka bir deyişle, ActionScript'te oluşturulmuş Sound nesneleri) bağımsızdır.
checkPolicyFile | özellik |
public var checkPolicyFile:Boolean = false
Dil Sürümü: | ActionScript 3.0 |
Çalışma Zamanı Sürümleri: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Uygulamanın sesi yüklemeye başlamadan önce ses sunucusundan bir URL ilke dosyası yüklemeyi denemesi gerekip gerekmediğini belirtir. Bu özellik, Sound.load()
yöntemi kullanılarak çağıran dosyasının kendi etki alanı dışından yüklenen ses için geçerlidir.
Çağıran dosyanın kendi etki alanının dışından bir ses dosyası yüklediğinizde ve çağıran dosyadaki kodun ses verilerine düşük düzeyli erişime sahip olması gerektiğinde, bu özelliği true
olarak ayarlayın. Ses verilerine düşük düzeyli erişim örnekleri arasında, ID3Info nesnesi almak için Sound.id3
özelliğine başvurma veya yüklenen sesten ses örnekleri almak için SoundMixer.computeSpectrum()
yöntemini çağırma yer alır. checkPolicyFile
özelliğini yükleme süresinde true
değerine ayarlamadan ses verilerine erişmeye çalışırsanız, gerekli ilke dosyası indirilmediğinden bir SecurityError istisnası alabilirsiniz.
Yüklemekte olduğunuz ses verilerine düşük düzeyli erişmeniz gerekmiyorsa, checkPolicyFile
öğesini true
değerine ayarlamaktan kaçının. İlke dosyasının kontrol edilmesi ağ bant genişliğini tüketir ve indirmenin başlamasını geciktirebilir, bu nedenle yalnızca gerektiğinde bunun yapılması gerekir.
SoundLoaderContext.checkPolicyFile
öğesi true
olarak ayarlıyken Sound.load()
öğesini çağırırsanız, Flash Player veya AIR uygulamasının ilgili bir URL ilke dosyasını başarıyla indirmesi veya belirtilen sesi indirmeye başlamadan önce böyle bir ilke dosyasının bulunmadığını belirlemesi gerekir. Flash Player veya AIR, bir ilke dosyasının varlığını doğrulamak için aşağıdaki eylemleri şu sırayla gerçekleştirir:
- Flash Player veya AIR, önceden indirilmiş olan ilke dosyalarını göz önünde bulundurur.
- Flash Player veya AIR,
Security.loadPolicyFile()
yöntemine yapılan çağrılarda belirtilen, bekleyen ilke dosyalarını indirmeyi dener. - Flash Player veya AIR, sesin
URLRequest.url
ile aynı sunucuda bulunan/crossdomain.xml
karşılık gelen varsayılan konumdan bir ilke dosyasını indirmeye çalışır. (Sesin URL'si,Sound.load()
veya Sound() yapıcı işlevine iletilen URLRequest nesnesininurl
özelliğinde belirtilir.)
Tüm durumlarda Flash Player veya AIR, sesin sunucusu üzerinde uygun bir ilke dosyasının olmamasını gerektirir. Böylece, ilke dosyasının konumuna göre URLRequest.url
üzerindeki ses dosyasına erişimi ve çağıran dosyanın etki alanının bir veya daha fazla <allow-access-from>
etiketi üzerinden sese erişimde bulunmasını sağlar.
checkPolicyFile
öğesini true
değerine ayarlarsanız, Flash Player veya AIR, sesi yüklemeden önce ilke dosyasının doğrulanmasını bekler. Ses verileri üzerinde Sound.id3
veya SoundMixer.computeSpectrum()
çağırma gibi herhangi bir düşük düzeyli işlem gerçekleştirmek için Sound nesnesinden progress
ve complete
olaylarının gönderilmesini beklemeniz gerekir.
checkPolicyFile
öğesini true
değerine ayarlarsanız ancak ilgili bir ilke dosyası bulunamazsa, ilke dosyası gerektiren bir işlem gerçekleştirene kadar hata almazsınız ve ardından Flash Player veya AIR bir SecurityError
istisnası atar. Bir complete
olayı aldıktan sonra, bir try
bloğu içindeki Sound.id3
değerini alıp bir SecurityError
atılıp atılmadığına bakarak ilgili ilke dosyasının bulunmuş olup olmadığını test edebilirsiniz.
Sunucu tarafındaki HTTP yönlendirmelerini kullanan bir URL'den ses indiriyorsanız checkPolicyFile
konusunda dikkatli olun. Flash Player veya AIR, Sound.load()
öğesine iletilen URLRequest nesnesinin url
özelliğine karşılık gelen ilke dosyalarını almaya çalışır. HTTP yeniden yönlendirmeleri nedeniyle son ses dosyası farklı bir URL'den gelirse, ilk olarak indirilmiş olan ilke dosyaları, güvenlik kararlarında önemli olan son URL niteliğindeki, sesin son URL'sine uygulanamayabilir.
Bu tür bir durumda başvurulabilecek olası çözümlerden biri şudur: Bir progress
veya complete
olayı aldıktan sonra, sesin son URL'sini içeren Sound.url
özelliğinin değerini inceleyebilirsiniz. Ardından, sesin son URL'sini esas alarak hesapladığınız bir ilke dosyası URL'siyle Security.loadPolicyFile()
yöntemini çağırın. Son olarak, herhangi bir istisna atılmayıncaya kadar Sound.id3
değerini sorgulayın.
Bu, AIR uygulama sanal alanındaki içeriğe uygulanmaz. Uygulama sanal alanındaki içerik, kaynağından bağımsız olarak ses içeriğine her zaman programlı erişime sahiptir.
Güvenlikle ilgili daha fazla bilgi için, bkz. Flash Player Geliştirici Merkezi Konusu: Güvenlik.
İlgili API Öğeleri
SoundLoaderContext | () | Yapıcı |
public function SoundLoaderContext(bufferTime:Number = 1000, checkPolicyFile:Boolean = false)
Dil Sürümü: | ActionScript 3.0 |
Çalışma Zamanı Sürümleri: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Yeni bir ses yükleyici bağlam nesnesi oluşturur.
ParametrelerbufferTime:Number (default = 1000 ) — Ses akışına başlanmadan önce akış sesinin arabelleğe önyükleneceği saniye sayısı.
| |
checkPolicyFile:Boolean (default = false ) — Nesnenin yüklenmesi sırasında bir URL ilke dosyasının mevcudiyetinin kontrol edilmesi gerekip (true ) gerekmediğini belirtir.
|
Örnek ( Bu örnek nasıl kullanılır? )
Varsayılan arabellek değerini bir saniyeden üç saniyeye çıkarmak için SoundLoaderContext nesnesinin birinci parametresi (context
) kullanılır. (Değer milisaniye cinsindedir.) SoundLoaderContext nesnesinin ikinci parametresi true
değerine ayarlanırsa, Flash Player, nesnenin yüklenmesinden sonra etki alanları arası ilke dosyasını kontrol eder. Burada false
varsayılan değerine ayarlandığından herhangi bir ilke dosyası kontrol edilmez. Ses akışı başlamadan önce akış sesinin arabelleğe önyüklenmesi için üç saniye geçmesini sağlamak üzere ses nesnesinin load()
yöntemi, bağlam ayarını kullanır. URLRequest
nesnesi, dosyanın konumunu belirler, bu Adobe podcast'idir. Ses dosyası yüklenirken bir IOErrorEvent.IO_ERROR
olayı gerçekleşirse, errorHandler()
yöntemi çağrılır.
package { import flash.display.Sprite; import flash.net.URLRequest; import flash.media.Sound; import flash.media.SoundLoaderContext; import flash.events.IOErrorEvent; public class SoundLoaderContextExample extends Sprite { public function SoundLoaderContextExample() { var snd:Sound = new Sound(); var req:URLRequest = new URLRequest("http://av.adobe.com/podcast/csbu_dev_podcast_epi_2.mp3"); var context:SoundLoaderContext = new SoundLoaderContext(3000, false); snd.load(req, context); snd.play(); snd.addEventListener(IOErrorEvent.IO_ERROR, errorHandler); } private function errorHandler(errorEvent:IOErrorEvent):void { trace("The sound could not be loaded: " + errorEvent.text); } } }
Tue Jun 12 2018, 01:09 PM Z