Paket | flash.media |
Sınıf | public final class SoundMixer |
Miras Alma | SoundMixer Object |
Dil Sürümü: | ActionScript 3.0 |
Çalışma Zamanı Sürümleri: | AIR 1.0, Flash Player 9, Flash Lite 4 |
sampleData
olayı gönderen bir Ses nesnesine yanıt olarak oluşturulan sesler) yanı sıra, uygulamadaki gömülü sesleri ve akış seslerini de kontrol eder.
Özellik | Tanımlayan: | ||
---|---|---|---|
audioPlaybackMode : String [statik]
Tüm Sound nesnelerinin ses oynatma modunu belirtir. | SoundMixer | ||
bufferTime : int [statik]
Akışa başlanmadan önce gömülü akış sesinin arabelleğe önyükleneceği saniye sayısı. | SoundMixer | ||
constructor : Object
Belirli bir nesne örneği için sınıf nesnesine veya yapıcı işlevine bir başvuru. | Object | ||
soundTransform : flash.media:SoundTransform [statik]
Global ses özelliklerini denetleyen SoundTransform nesnesi. | SoundMixer | ||
useSpeakerphoneForVoice : Boolean [statik]
Aygıt ses modundayken hoparlöre geçiş yapar. | SoundMixer |
Yöntem | Tanımlayan: | ||
---|---|---|---|
[statik]
Güvenlik kısıtlaması nedeniyle erişilemeyen herhangi bir ses var mı, belirler. | SoundMixer | ||
[statik]
Geçerli ses dalgasının anlık görüntüsünü alır ve bunu belirtilen ByteArray nesnesinin içine yerleştirir. | SoundMixer | ||
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 | ||
[statik]
Çalınmakta olan tüm sesleri durdurur. | SoundMixer | ||
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 |
audioPlaybackMode | özellik |
audioPlaybackMode:String
Dil Sürümü: | ActionScript 3.0 |
Çalışma Zamanı Sürümleri: | AIR 3 |
Tüm Sound nesnelerinin ses oynatma modunu belirtir. Mobil aygıtlarda bu özellik, platform deyimlerine göre ses önceliklerini ve varsayılanları ayarlar. Masaüstü ve TV ortamlarında, ses oynatma modları arasında işlevsel bir farklılık yoktur.
AudioPlaybackMode sınıfında bu özellik için geçerli değerler tanımlanmıştır.
Not iOS'ta, bir uygulama audioPlaybackMode=AudioPlaybackMode.VOICE
modunu ayarladığında diğer uygulamalar bunu AudioPlaybackMode.MEDIA
olarak değiştiremez.
AudioPlaybackMode.VOICE
modunu en az oranda kullanın ve diğer uygulamaların ortam modunda oynatılmasına olanak sağlamak için sesli aramanın sonlanmasının ardından en kısa zamanda AudioPlaybackMode.MEDIA
moduna geçiş yapmayı deneyin.
iOS'ta ses oynatma modunu değiştirdiğinizde müzik dosyalarını oynatan yerel uygulamalar kısaca duraklatılır.
Varsayılan değer şudur AudioPlaybackMode.MEDIA.
Uygulama
public static function get audioPlaybackMode():String
public static function set audioPlaybackMode(value:String):void
Atar
ArgumentError — kInvalidParameterError
|
İlgili API Öğeleri
bufferTime | özellik |
bufferTime:int
Dil Sürümü: | ActionScript 3.0 |
Çalışma Zamanı Sürümleri: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Akışa başlanmadan önce gömülü akış sesinin arabelleğe önyükleneceği saniye sayısı. Etki alanları arası ilke dosyası uygulamadığınız sürece, farklı bir etki alanındaki bir SWF dosyası yüklenen bir sesteki verilere (arabellek süresi dahil) erişemez. Güvenlik ve ses hakkında daha fazla bilgi için Sound sınıfının açıklamasına bakın. Arabelleğe alma süresi dahil yüklenen sesteki veriler, etki alanları arası bir ilke dosyasını uygulamadığınız sürece, farklı bir etki alanında bulunan dosyadaki kod için erişilemez durumdadır. Ancak, bir AIR uygulamasındaki uygulama sanal alanında, kod herhangi bir kaynaktan gelen ses dosyasındaki verilere erişebilir. Güvenlik ve ses hakkında daha fazla bilgi için Sound sınıfının açıklamasına bakın.
SoundMixer.bufferTime
özelliği yalnızca bir SWF dosyasındaki gömülü akış seslerinin arabellek süresini etkiler ve dinamik olarak oluşturulan Sound nesnelerinden (yani, ActionScript'te oluşturulmuş Sound nesneleri) bağımsızdır. SoundMixer.bufferTime
değeri, Sound.load()
yöntemine iletilen SoundLoaderContext nesnesinde belirtilen varsayılan arabelek süresini geçersiz kılamaz veya ayarlayamaz.
Uygulama
public static function get bufferTime():int
public static function set bufferTime(value:int):void
İlgili API Öğeleri
soundTransform | özellik |
soundTransform:flash.media:SoundTransform
Dil Sürümü: | ActionScript 3.0 |
Çalışma Zamanı Sürümleri: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Global ses özelliklerini denetleyen SoundTransform nesnesi. SoundTransform nesnesi, ses düzeyini ayarlama, yatay kaydırma, sol hoparlör ataması ve sağ hoparlör atamasına yönelik özellikleri içerir. Bu özellikte kullanılan SoundTransform nesnesi, ayrı ses ayarları uygulandıktan sonra tüm seslere uygulanan son ses ayarlarını sağlar.
Uygulama
public static function get soundTransform():flash.media:SoundTransform
public static function set soundTransform(value:flash.media:SoundTransform):void
İlgili API Öğeleri
useSpeakerphoneForVoice | özellik |
useSpeakerphoneForVoice:Boolean
Dil Sürümü: | ActionScript 3.0 |
Çalışma Zamanı Sürümleri: | AIR 3 |
Aygıt ses modundayken hoparlöre geçiş yapar. Akıllı telefonlar; SoundMixer.audioPlaybackMode
, AudioPlaybackMode.VOICE
öğesine ayarlandığında ses çıkışı için varsayılan olarak telefon kulaklığını kullanır. useSpeakerphoneForVoice
özelliği, telefon uygulamasında bir hoparlör düğmesi kullanabilmeniz için varsayılan çıktıyı geçersiz kılmanıza olanak tanır. Bu özellik, AudioPlaybackMode.VOICE
dışındaki modlarda etkili değildir. Bu özellik, masaüstü ve TV ortamlarında etkili değildir.
Not iOS'ta, uygulamanız audioPlaybackMode=VOICE
modunu ayarladıysa ve diğer bir uygulama da ses modunda oynatıyorsa useSpeakerphoneForVoice=true
modunu ayarlayamazsınız.
Not Android'de, AIR uygulaması tanımlayıcısı içinde android.permission.MODIFY_AUDIO_SETTINGS
öğesini ayarlamalısınız, aksi taktirde bu değerin değiştirilmesi hiçbir etki yapmaz. Ayrıca ayar, global aygıt ayarıdır. Aygıtta çalışan diğer uygulamalar, temeldeki aygıt ayarını herhangi bir zamanda değiştirebilir.
Varsayılan değer şudur false.
Uygulama
public static function get useSpeakerphoneForVoice():Boolean
public static function set useSpeakerphoneForVoice(value:Boolean):void
İlgili API Öğeleri
areSoundsInaccessible | () | yöntem |
public static function areSoundsInaccessible():Boolean
Dil Sürümü: | ActionScript 3.0 |
Çalışma Zamanı Sürümleri: | AIR 1.0, Flash Player 9 |
Herhangi bir sesin güvenlik kısıtlaması nedeniyle erişilemez olup olmadığını belirler. Örneğin, ses sunucusunda bu etki alanının etki alanına erişilmesini sağlayan bir URL ilke dosyası yoksa, bu yöntemi çağıran içeriğin etki alanı dışında bir etki alanından yüklenen bir ses erişilemez durumdadır. Ses halen yüklenip çalınabilir ancak erişilemeyen seslerde sesin ID3 meta verilerini alma gibi düşük düzeyli işlemler gerçekleştirilemez.
Uygulama güvenlik sanal alanında bulunan AIR uygulama içeriği için, bu yöntemin çağrılması her zaman false
değerini döndürür. Diğer etki alanlarından yüklenenler dahil tüm sesler, uygulama güvenlik sanal alanındaki içerik için erişilebilir durumdadır.
Boolean — Boolean değerinin dize olarak temsil edilen hali.
|
İlgili API Öğeleri
computeSpectrum | () | yöntem |
public static function computeSpectrum(outputArray:ByteArray, FFTMode:Boolean = false, stretchFactor:int = 0):void
Dil Sürümü: | ActionScript 3.0 |
Çalışma Zamanı Sürümleri: | AIR 1.0, Flash Player 9 |
Geçerli ses dalgasının anlık görüntüsünü alır ve bunu belirtilen ByteArray nesnesinin içine yerleştirir. Değerler, -1,0 ile 1,0 aralığında normalleştirilmiş kayar nokta olarak biçimlendirilir. outputArray
parametresine iletilen ByteArray nesnesinin üzerine yeni değerler yazılır. Oluşturulan ByteArray nesnesinin boyutu 512 kayar nokta değerine sabitlenir, burada ilk 256 değer sol kanalı, ikinci 256 değer de sağ kanalı temsil eder.
Not: Bu yöntem yerel dosya güvenlik sınırlamalarına ve etki alanları arası yüklemeye ilişkin sınırlamalara tabidir. Çağıran içeriğin etki alanından farklı bir etki alanında bulunan bir sunucudan yüklenen yerel dosyalar veya seslerle çalışıyorsanız, etki alanları arası ilke dosyası aracılığıyla sanal alan sınırlamalarına başvurmanız gerekebilir. Daha fazla bilgi için, Sound sınıfı açıklamasına bakın. Ayrıca, bu yöntem, RTMP sunucusuyla aynı etki alanında yer alan içerik tarafından çağrılmış olsa bile, RTMP akışlarından veri ayıklamak için kullanılamaz.
Bu yöntem, Flash Player 9.0.115.0 ve daha sonraki sürümleri ile Adobe AIR'da RTMP üzerinden desteklenir. Sunucu tarafındaki bir komut dosyasında Flash Media Server'daki akışlara erişimi denetleyebilirsiniz. Daha fazla bilgi için, Server-Side ActionScript Language Reference for Adobe Flash Media Server (Adobe Flash Media Server için Sunucu Tarafı ActionScript Dil Başvurusu) içinde Client.audioSampleAccess
ve Client.videoSampleAccess
özelliklerine bakın.
Parametreler
outputArray:ByteArray — Sesle ilişkilendirilmiş değerleri tutan bir ByteArray nesnesi. Güvenlik kısıtlamaları nedeniyle herhangi bir ses yoksa (areSoundsInaccessible == true ), outputArray nesnesi değiştirilmeden bırakılır. Tüm sesler durdurulursa, outputArray nesnesi sıfırlarla doldurulur.
| |
FFTMode:Boolean (default = false ) — Bir Fourier dönüştürmesinin ilk olarak ses verisinde gerçekleştirilip gerçekleştirilmediğini belirten bir Boolean değeri. Bu parametrenin true değerine ayarlanması, yöntemin ham ses dalgası yerine bir frekans spektrumu döndürmesine neden olur. Frekans spektrumunda, düşük frekanslar solda ve yüksek frekanslar sağda temsil edilir.
| |
stretchFactor:int (default = 0 ) — Ses örneklerinin çözünürlüğü. stretchFactor değerini 0 olarak ayarlarsanız, veri 44.1 KHz'de örneklenir; 1 değerinde veri 22.05 KHz'de; 2 değerinde veri 11.025 KHz'de; vb. örneklenir.
|
İlgili API Öğeleri
flash.utils.ByteArray
flash.media.Sound
flash.media.SoundLoaderContext.checkPolicyFile
Örnek ( Bu örnek nasıl kullanılır? )
computeSpectrum()
yöntemi kullanılır.
Yapıcıda bir ses dosyası yüklenir ve oynatılacak şekilde ayarlanır. (Bu örnekte bir hata işlemesi yoktur ve ses dosyasının SWF dosyasıyla aynı dizin içinde olduğu varsayılmıştır.) Bu örnek, ses çalınırken Event.ENTER_FRAME
olayını dinleyerek ses verisi değerlerinin bir grafiğini çizmek için art arda onEnterFrame()
yöntemini tetikler. Ses çalınması durduğunda, onPlaybackComplete()
yöntemi Event.ENTER_FRAME
olayının dinleyicisini kaldırarak çizim işlemini durdurur.
onEnterFrame()
yönteminde, computeSpectrum()
yöntemi, ham sesi bytes
bayt dizisi nesnesinde saklar. Veriler 44.1 KHz'de örneklenir. Her biri -1 ile 1 arasında kayar nokta değerine sahip 512 bayt veri içeren bayt dizisi. İlk 256 değer sol kanalı ve ikinci 256 değer de sağ kanalı temsil eder. Birincisi döngü için olup ilk 256 değeri (sol stereo kanal) okur ve Graphics.lineTo()
yöntemini kullanarak her noktadan bir sonrakine bir çizgi çizer. (Ses dalgasının vektör grafiği görüntüsü doğrudan sınıfın hareketli grafik nesnesine yazılır.) Ses baytları, bayt akışından 32 bit kayar nokta sayısı olarak okunur ve grafiğin dikey aralığına izin vermek için çizim yüksekliğiyle çarpılır. Genişlik, kanal uzunluğu genişliğinin iki katına ayarlanır. İkinci for döngüsü bir sonraki 256 değer kümesini (sağ stereo kanal) okur ve çizgileri ters sırayla çizer. g.lineTo(CHANNEL_LENGTH * 2, PLOT_HEIGHT);
ve g.lineTo(0, PLOT_HEIGHT);
yöntemleri, dalgalar için taban çizgisini çizer. Sonuç dalga formu çizimi, ayna görünümü efekti üretir.
package { import flash.display.Sprite; import flash.display.Graphics; import flash.events.Event; import flash.media.Sound; import flash.media.SoundChannel; import flash.media.SoundMixer; import flash.net.URLRequest; import flash.utils.ByteArray; import flash.text.TextField; public class SoundMixer_computeSpectrumExample extends Sprite { public function SoundMixer_computeSpectrumExample() { var snd:Sound = new Sound(); var req:URLRequest = new URLRequest("Song1.mp3"); snd.load(req); var channel:SoundChannel; channel = snd.play(); addEventListener(Event.ENTER_FRAME, onEnterFrame); channel.addEventListener(Event.SOUND_COMPLETE, onPlaybackComplete); } private function onEnterFrame(event:Event):void { var bytes:ByteArray = new ByteArray(); const PLOT_HEIGHT:int = 200; const CHANNEL_LENGTH:int = 256; SoundMixer.computeSpectrum(bytes, false, 0); var g:Graphics = this.graphics; g.clear(); g.lineStyle(0, 0x6600CC); g.beginFill(0x6600CC); g.moveTo(0, PLOT_HEIGHT); var n:Number = 0; for (var i:int = 0; i < CHANNEL_LENGTH; i++) { n = (bytes.readFloat() * PLOT_HEIGHT); g.lineTo(i * 2, PLOT_HEIGHT - n); } g.lineTo(CHANNEL_LENGTH * 2, PLOT_HEIGHT); g.endFill(); g.lineStyle(0, 0xCC0066); g.beginFill(0xCC0066, 0.5); g.moveTo(CHANNEL_LENGTH * 2, PLOT_HEIGHT); for (i = CHANNEL_LENGTH; i > 0; i--) { n = (bytes.readFloat() * PLOT_HEIGHT); g.lineTo(i * 2, PLOT_HEIGHT - n); } g.lineTo(0, PLOT_HEIGHT); g.endFill(); } private function onPlaybackComplete(event:Event):void { removeEventListener(Event.ENTER_FRAME, onEnterFrame); } } }
stopAll | () | yöntem |
public static function stopAll():void
Dil Sürümü: | ActionScript 3.0 |
Çalışma Zamanı Sürümleri: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Çalınmakta olan tüm sesleri durdurur.
>Flash Professional'da, bu yöntem oynatma kafasını durdurmaz. Akış almak üzere ayarlanan sesler, oynatma kafası bulundukları kareler üzerinden hareket ettiğinde çalınmaya devam eder.
Bu özelliği kullanırken aşağıdaki güvenlik modelini göz önünde bulundurun:
- Varsayılan olarak,
SoundMixer.stopAll()
yönteminin çağrılması, yalnızca yöntemi çağıran nesneyle aynı sanal güvenlik alanındaki sesleri durdurur. Çağıran nesneyle aynı sanal alandan oynatılmaya başlamamış sesler durdurulmaz. - Sesi yüklediğinizde, Sound sınıfının
load()
yöntemini kullanarak, bir SoundLoaderContext nesnesi olan bircontext
parametresini belirtebilirsiniz. SoundLoaderContext nesnesinincheckPolicyFile
özelliğinitrue
değerine ayarlarsanız, Flash Player veya Adobe AIR, sesin yüklendiği sunucudaki etki alanları arası ilke dosyasını kontrol eder. Sunucu etki alanları arası bir ilke dosyası içeriyor ve bu dosya çağıran içeriğin etki alanına izin veriyorsa, dosyaSoundMixer.stopAll()
yöntemini kullanarak yüklenen sesi durdurabilir; aksi halde durduramaz.
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.
Örnek ( Bu örnek nasıl kullanılır? )
stopAll()
yöntemi kullanılır.
Yapıcıda iki farklı ses dosyası yüklenir ve çalınacak şekilde ayarlanır. Birinci ses yerel olarak ayarlanır ve bir ses kanalına atanır. (Burada, dosyanın SWF dosyasıyla aynı dizin içinde olduğu varsayılmıştır.) İkinci dosya Adobe sitesinden yüklenir ve akışa alınır. SoundMixer.stopAll()
yöntemini kullanmak için tüm sesin erişilebilir olması gerekir. (Etki alanları arası ilke dosyasını kontrol etmek için bir SoundLoaderContext nesnesi kullanılabilir.) Her sesin, ses dosyası yüklenirken bir GÇ hatası oluştuğunda çağrılan bir olay dinleyicisi de vardır. Ayrıca bir de muteButton
metin alanı oluşturulur. Bu, muteButtonClickHandler()
yöntemini çağıracak olan bir tıklatma olayını dinler.
muteButtonClickHandler()
yönteminde, metin dosyası içeriği "MUTE" ise, areSoundsInaccessible()
yöntemi, ses karıştırıcının dosyalara erişip erişmediğini kontrol eder. Dosyalar erişilebilir durumdaysa, stopAll()
yöntemi sesleri durdurur. Metin alanı tekrar seçilerek birinci ses çalınmaya başlar ve metin alanının içeriği tekrar "MUTE" olarak değişir. Bu defa, stopAll()
yöntemi çalınan sesi kapatır. Ses kanalı stop()
yönteminin, kanala atanmış belirli bir sesi durdurmak için de kullanılabileceğini unutmayın. (Kanal işlevinin kullanılması için, play()
yöntemi her çağrıldığında sesin kanala yeniden atanması gerekir.)
package { import flash.display.Sprite; import flash.net.URLRequest; import flash.media.Sound; import flash.media.SoundLoaderContext; import flash.media.SoundChannel; import flash.media.SoundMixer; import flash.text.TextField; import flash.text.TextFieldAutoSize; import flash.events.MouseEvent; import flash.events.IOErrorEvent; public class SoundMixer_stopAllExample extends Sprite { private var firstSound:Sound = new Sound(); private var secondSound:Sound = new Sound(); private var muteButton:TextField = new TextField(); private var channel1:SoundChannel = new SoundChannel(); public function SoundMixer_stopAllExample() { firstSound.load(new URLRequest("mySound.mp3")); secondSound.load(new URLRequest("http://av.adobe.com/podcast/csbu_dev_podcast_epi_2.mp3")); firstSound.addEventListener(IOErrorEvent.IO_ERROR, firstSoundErrorHandler); secondSound.addEventListener(IOErrorEvent.IO_ERROR, secondSoundErrorHandler); channel1 = firstSound.play(); secondSound.play(); muteButton.autoSize = TextFieldAutoSize.LEFT; muteButton.border = true; muteButton.background = true; muteButton.text = "MUTE"; muteButton.addEventListener(MouseEvent.CLICK, muteButtonClickHandler); this.addChild(muteButton); } private function muteButtonClickHandler(event:MouseEvent):void { if(muteButton.text == "MUTE") { if(SoundMixer.areSoundsInaccessible() == false) { SoundMixer.stopAll(); muteButton.text = "click to play only one of sound."; } else { muteButton.text = "The sounds are not accessible."; } } else { firstSound.play(); muteButton.text = "MUTE"; } } private function firstSoundErrorHandler(errorEvent:IOErrorEvent):void { trace(errorEvent.text); } private function secondSoundErrorHandler(errorEvent:IOErrorEvent):void { trace(errorEvent.text); } } }
Tue Jun 12 2018, 01:09 PM Z