Video hakkında dikkat edilmesi gerekenler
Video kodlama yönergeleri
Bir TV aygıtına video akışı sağlarken Adobe aşağıdaki kodlama yönergelerini önerir:
Video codec'i:
|
H.264, Ana veya Yüksek profil, aşamalı kodlama
|
Çözünürlük:
|
720i, 720p, 1080i veya 1080p
|
Kare hızı:
|
Saniye başına 24 kare veya saniye başına 30 kare
|
Ses codec'i:
|
AAC-LC veya AC-3, 44,1 kHz, stereo veya şu çok kanallı ses codec'leri: E-AC-3, DTS, DTS Express, DTS-HD High Resolution Audio veya DTS-HD Master Audio
|
Bileşik bit hızı:
|
kullanılabilir bant genişliğine bağlı olarak en fazla 8M bps
|
Ses bit hızı:
|
en fazla 192 Kbps
|
Piksel en boy oranı:
|
1 × 1
|
Adobe AIR for TV aygıtlarına teslim edilen videolar için H.264 codec'ini kullanmanızı önerir.
Not:
AIR for TV ayrıca Sorenson Spark veya On2 VP6 codec'leriyle kodlanan videoları da destekler. Ancak, donanım bu codec'lerin kodunu çözmez veya bunları sunmaz. Bunun yerine, çalışma zamanı bu codec'lerin kodunu yazılım kullanarak çözer ve codec'leri yazılımla sunar. Bu nedenle, video çok daha düşük bir kare hızında oynar. Bu nedenle, mümkün olduğunda H.264 kullanın.
StageVideo sınıfı
AIR for TV, donanım kodu çözmeyi ve H.264 kodlu videonun sunumunu destekler. Bu özelliği etkinleştirmek için StageVideo sınıfını kullanın.
Aşağıdakilerle ilgili bilgi için
ActionScript 3.0 Geliştirici Kılavuzu
içindeki
Donanım hızlandırmalı sunum için StageVideo sınıfını kullanma
bölümüne bakın:
AIR for TV, H.264 kodlu video için Video nesnesini kullanan varolan AIR uygulamalarını en iyi şekilde desteklemek için
dahili olarak
StageVideo nesnesini kullanır. Bu, video oynatmanın donanım kodu çözme ve sunma işleminden faydalandığı anlamına gelir. Ancak, Video nesnesi bir StageVideo nesnesiyle aynı kısıtlamaları tabidir. Örneğin, uygulama videoyu döndürmeye çalışırsa, videoyu çalışma zamanı değil donanım sunduğundan dönüş gerçekleşmez.
Ancak, yeni uygulamalar yazdığınızda H.264 kodlu video için StageVideo nesnesini kullanın.
StageVideo sınıfının kullanımıyla ilgili bir örnek için bkz.
TV'de Flash Platform için video ve içerik sunma
.
Video teslimi yönergeleri
Bir AIR for TV aygıtında, ağın kullanılabilir bant genişliği video oynatımı sırasında değişebilir. Örneğin, bu değişiklikler başka bir kullanıcı aynı İnternet bağlantısını kullanmaya başladığında oluşabilir.
Bu nedenle, Adobe video teslim sisteminizin uyarlanabilir bit hızı özellikleri kullanmasını önerir. Örneğin, sunucu tarafında, Flash Media Server uyarlanabilir bit hızı özelliklerini destekler. İstemci tarafında, Açık Kaynak Medya Çerçevesi'ni (OSMF) kullanabilirsiniz.
Aşağıdaki protokoller bir AIR for TV uygulamasına ağ üzerinden video içeriği sağlamak için kullanılabilir:
-
HTTP ve HTTPS Dinamik Akışı (F4F biçimi)
-
RTMP, RTMPE, RTMFP, RTMPT ve RTMPTE Akışı
-
HTTP ve HTTPS Aşamalı İndirme
Daha fazla bilgi için, şu konulara bakın:
Ses ile ilgili dikkat edilmesi gerekenler
ActionScript ses çalma konusunda, AIR for TV'de diğer AIR uygulamalarında olduğundan farklı değildir. Bilgi için
ActionScript 3.0 Geliştirici Kılavuzu
içindeki
Ses ile çalışma
bölümüne bakın.
TV için AIR'deki çok kanallı ses desteğiyle ilgili olarak şunları göz önünde bulundurun:
-
TV için AIR, bir HTTP sunucusundan aşamalı olarak indirilen videolar için çok kanallı sesi desteklemektedir. Adobe Flash Media Server'dan akışa alınan videolar için çok kanallı ses desteği henüz mevcut değildir.
-
AIR for TV uygulaması çok sayıda ses codec'ini desteklese de AIR for TV
aygıtlarının
tümü tüm codec'leri desteklemez. AIR for TV aygıtının AC-3 gibi bir çok kanallı özel ses codec'ini destekleyip desteklemediğini kontrol etmek için
flash.system.Capabilities
yöntemi
hasMultiChannelAudio()
öğesini kullanın.
Örneğin, sürekli olarak bir sunucudan bir video dosyası indiren bir uygulama düşünün. Sunucuda çok kanallı farklı ses codec'lerini destekleyen H.264 video dosyaları vardır. Uygulama, sunucudan hangi video dosyasının isteneceğini belirlemek için
hasMultiChannelAudio()
öğesini kullanabilir. Alternatif olarak uygulama, sunucuya
Capabilities.serverString
içinde yer alan dizeyi gönderebilir. Dize, hangi çok kanallı ses codec'lerinin kullanılabilir olduğunu belirterek sunucunun uygun video dosyasını seçmesini sağlar.
-
DTS ses codec'lerinden birini kullanırken,
hasMultiChannelAudio()
öğesinin
true
ayarını döndürdüğü, ancak DTS sesinin oynatılmadığı durumlar bulunur.
Örneğin, eski bir amfiye bağlı, S/PDIF çıkışına sahip bir Blu-ray oynatıcısı olduğunu düşünelim. Eski amfi DTS'yi desteklemez, ancak S/PDIF'in Blu-ray oynatıcısına durumu bildirecek herhangi bir protokolü yoktur. Blu-ray oynatıcısı eski amfiye DTS akışını gönderirse, kullanıcı herhangi bir ses duymaz. Bu nedenle, DTS kullanırken en iyi uygulama olarak, sesin çalınmaması durumunda kullanıcının bunu fark edebilmesi için bir kullanıcı arabirimi sağlayın. Böylece, uygulamanız farklı bir codec'e geçebilir.
Aşağıdaki tablo AIR for TV uygulamalarında farklı ses codec'lerinin ne zaman kullanılacağını özetler. Tablo ayrıca AIR for TV aygıtlarının bir ses codec'inin kodunu çözmek için donanım hızlandırıcılarını ne zaman kullanacağını gösterir. Donanım kodu çözme performansı artırır ve CPU'yu boşaltır.
Ses codec'i
|
AIR for TV aygıtında kullanılabilirlik
|
Donanım kodu çözme
|
Bu ses codec'i ne zaman kullanılmalı?
|
Daha fazla bilgi
|
AAC
|
Her Zaman
|
Her Zaman
|
H.264 ile kodlanmış videolarda.
İnternet'ten müzik akışı hizmeti gibi ses akışı uygulamalarında.
|
Yalnızca ses AAC akışı kullanırken ses akışını bir MP4 kabında kapsülleyin.
|
mp3
|
Her Zaman
|
Hayır
|
Uygulamanın SWF dosyalarındaki sesler için.
Sorenson Spark veya On2 VP6 ile kodlanan videolarda.
|
Ses için mp3 kullanan bir H.264 video, TV için AIR aygıtlarında kayıttan yürütülmez.
|
AC-3 (Dolby Digital)
E-AC-3 (Gelişmiş Dolby Digital)
DTS Digital Surround
DTS Express
DTS-HD High Resolution Audio
DTS-HD Master Audio
|
Kontrol edin
|
Evet
|
H.264 ile kodlanmış videolarda.
|
Normalde AIR for TV, sesin kodunu çözen ve oynatan harici bir ses/video alıcısına çok kanallı bir ses akışı iletir.
|
Speex
|
Her Zaman
|
Hayır
|
Canlı bir ses akışı alma.
|
Ses için Speex kullanan bir H.264 video, TV için AIR cihazlarında kayıttan yürütülmez. Speex'i yalnızca Sorenson Spark veya On2 VP6 ile kodlanmış videolarla kullanın.
|
NellyMoser
|
Her Zaman
|
Hayır
|
Canlı bir ses akışı alma.
|
Ses için NellyMoser kullanan bir H.264 video, TV için AIR aygıtlarında kayıttan yürütülmez. NellyMoser'ı yalnızca Sorenson Spark veya On2 VP6 ile kodlanmış videolarla kullanın.
|
Not:
Bazı video dosyaları iki ses akışı içerir. Örneğin, bir video dosyası hem AAC akışını hem AC3 akışını içerebilir. AIR for TV, bu tür video dosyalarını desteklemez ve bu tür bir dosyanın kullanımı video için hiçbir sesin olmamasıyla sonuçlanabilir.
Grafik donanım hızlandırması
Donanım grafik hızlandırması kullanma
AIR for TV aygıtları 2D grafik işlemleri için donanım hızlandırması sağlar. Aygıtın donanım grafik hızlandırıcıları aşağıdaki işlemleri gerçekleştirmek için İşlemcideki yükü azaltır:
Bu donanım grafiği hızlandırması AIR for TV uygulamasındaki birçok grafik işleminin yüksek performanslı olabileceği anlamına gelir. Bu işlemlerden bazıları şunlardır:
Bu tür işlemler için donanım grafik hızlandırmasının performans yararlarını elde etmek için aşağıdaki tekniklerden birini kullanın:
-
MovieClip nesnelerinde ve genellikle değişmeyen içeriğe sahip diğer görüntüleme nesnelerinde
cacheAsBitmap
özelliğini
true
olarak ayarlayın. Ardından bu nesnelerde kayan geçişler, solan geçişler ve alfa karışımları gerçekleştirin.
-
Ölçeklemek veya çevirmek (x ve y yeniden konumlandırması uygulamak) istediğiniz görüntüleme nesnelerinde
cacheAsBitmapMatrix
özelliğini kullanın.
Aygıtın donanım hızlandırıcıları ölçekleme ve çevirme işlemleri için Matrix sınıfı işlemlerini kullanarak işlemleri gerçekleştirir. Alternatif olarak,
cacheAsBitmap
özelliği
true
olarak ayarlı olan bir görüntüleme nesnesinin boyutlarını değiştirdiğiniz bir senaryoyu düşünün. Boyutlar değiştiğinde, çalışma zamanının yazılımı bitmap'i yeniden çizer. Yazılım ile yeniden çizme işlemi, Matris işlemini kullanarak donanım hızlandırmayla ölçekleme işleminden daha düşük performans sunar.
Örneğin, kullanıcı seçtiğinde genişleyen bir görüntüyü gösteren bir uygulamayı düşünün. Görüntüye genişliyormuş izlenimini vermek için birkaç defa Matris ölçekleme işlemini kullanın. Ancak, orijinal görüntünün ve son görüntünün boyutuna bağlı olarak, son görüntünün kalitesi kabul edilemez olabilir. Bu nedenle, genişletme işlemleri tamamlandıktan sonra görüntüleme nesnesinin boyutlarını sıfırlayın.
CacheAsBitmap
true
olduğundan, çalışma zamanı yazılımı görüntüleme nesnesini yalnızca bir kez yeniden çizer ve yüksek kalitede görüntü oluşturur.
Not:
Genellikle, AIR for TV aygıtları donanım hızlandırmalı döndürme ve eğriltme işlemlerini desteklemez. Bu nedenle, Matrix sınıfında döndürme ve eğriltme işlemi belirtirseniz, AIR for TV tüm Matris işlemlerini yazılımda gerçekleştirir. Bu yazılım işlemleri performansı düşürebilir.
-
Özel bir bitmap'leri arabelleğe alma davranışı oluşturmak için BitmapData sınıfını kullanın.
Bitmap önbelleğe alma ile ilgili daha fazla bilgi için şunlara bakın:
Grafik belleğini yönetme
Hızlandırılmış grafik işlemlerini gerçekleştirmek için donanım hızlandırıcıları özel grafik belleği kullanır. Uygulamanız tüm grafik belleğini kullanıyorsa, AIR for TV grafik işlemleri için yazılımı kullanmaya döndüğünden uygulama daha yavaş çalışır.
Uygulamanızın grafik belleği kullanımını yönetmek için:
-
Bir görüntüyü veya diğer bitmap verisini kullanmayı bitirdiğinizde, bununla ilişkili grafik belleğini serbest bırakın. Bunu yapmak için Bitmap nesnesinin
bitmapData
özelliğinin
dispose()
yöntemini çağırın. Örneğin:
myBitmap.bitmapData.dispose();
Not:
BitmapData nesnesinin başvurusunun bırakılması, grafik belleğini hemen bırakmaz. Çalışma zamanının çöp toplayıcısı sonunda grafik belleğini boşaltır, ancak
dispose()
yöntemini çağırmak uygulamanıza daha fazla kontrol sağlar.
-
Hedef aygıtınızdaki donanım grafik hızlandırmasını daha iyi anlamak için Adobe'nin sağladığı bir AIR uygulaması olan PerfMaster Deluxe uygulamasını kullanın. Bu uygulama çeşitli işlemleri yürütmek için saniye başına kareyi gösterilir. Aynı işlemin farklı uygulamalarını karşılaştırmak için PerfMaster Deluxe uygulamasını kullanın. Örneğin, bir bitmap görüntüsünü taşıma işlemiyle bir vektör görüntüsünü taşıma işlemini karşılaştırın. PerfMaster Deluxe
TV için Flash Platform
'da bulunabilir.
Görüntüleme listesini yönetme
Bir görüntüleme nesnesini görünür yapmak için nesnenin
visible
özelliğini
false
olarak ayarlayın. Böylece nesne hala görüntüleme listesinde olur ancak AIR for TV nesneyi oluşturmaz ve görüntülemez. Bu teknik yalnızca küçük bir işleme yükü oluşturduğundan sık sık görünüme girip çıkan nesneler için faydalıdır. Ancak,
visible
özelliğini
false
olarak ayarlamak nesnenin kaynaklarından herhangi birini serbest bırakmaz. Bu nedenle, bir nesneyi görüntülemeniz bittiğinde veya en azından uzun bir süre kullanmayacağınızda nesneyi görüntüleme listesinden kaldırın. Ayrıca nesneye yapılan tüm başvuruları
null
olarak ayarlayın. Bu eylemler çöp toplayıcısının nesnenin kaynaklarını bırakmasına neden olur.
PNG ve JPEG görüntüsü kullanımı
Uygulamalardaki yaygın iki görüntü biçimi PNG ve JPEG'dir. AIR for TV uygulamalarındaki bu görüntü biçimleriyle ilgili olarak aşağıdakileri göz önünde bulundurun:
-
AIR for TV genellikle JPEG dosyalarının kodunu çözmek için donanım hızlandırmayı kullanır.
-
AIR for TV genellikle PNG dosyalarının kodunu çözmek için yazılım kullanır. PNG dosyalarının kodunu yazılımda çözme işlemi hızlıdır.
-
PNG saydamlığı (bir alfa kanalı) destekleyen platformlar arası tek bitmap biçimidir.
Bu nedenle, bu görüntü biçimlerini uygulamalarınızda aşağıdaki gibi kullanın:
-
Donanım hızlandırmalı kod çözme işleminden faydalanmak üzere fotoğraflar için JPEG dosyalarını kullanın.
-
Kullanıcı arabirimi öğeleri için PNG görüntüsünü kullanın. Kullanıcı arabirimi öğeleri alfa ayarına sahip olabilir ve yazılım kod çözme işlemi kullanıcı arabirimi öğeleri için yeterli derecede hızlı performans sağlar.
AIR for TV uygulamalarında sahne alanı
Bir AIR for TV uygulaması için geliştirme yaparken ve Stage sınıfı ile çalışırken aşağıdakileri dikkate alın:
-
Ekran çözünürlüğü
-
Güvenli görüntüleme alanı
-
Sahne alanı ölçek modu
-
Sahne alanı hizalaması
-
Sahne alanının görüntüleme durumu
-
Birden fazla ekran boyutu için tasarlama
-
Sahne alanının kalite ayarı
Ekran çözünürlüğü
Geçerli olarak, TV aygıtlarında genellikle şu ekran çözünürlüklerinden biri bulunur: 540p, 720p ve 1080p. Bu ekran çözünürlükleri ActionScript Capabilities sınıfında aşağıdaki değerlere neden olur:
Ekran çözünürlüğü
|
Capabilities.screenResolutionX
|
Capabilities.screenResolutionY
|
540p
|
960
|
540
|
720p
|
1280
|
720
|
1080p
|
1920
|
1080
|
Belirli bir aygıta yönelik tam ekranlı AIR for TV uygulaması yazmak için
Stage.stageWidth
ve
Stage.stageHeight
öğelerini doğrudan aygıtın ekran çözünürlüğüne yazın. Ancak, birden çok aygıtta çalışan tam ekran bir uygulama yazmak için Sahne Alanı boyutlarını ayarlamak üzere
Capabilities.screenResolutionX
ve
Capabilities.screenResolutionY
özelliklerini kullanın.
Örneğin:
stage.stageWidth = Capabilities.screenResolutionX;
stage.stageHeight = Capabilities.screenResolutionY;
Güvenli görüntüleme alanı
Bir televizyondaki
güvenli görüntüleme alanı
, ekranın kenarlarından içeri doğru girmiş alanıdır. Bu alan, son kullanıcının TV'nin kenarındaki kısım alanın herhangi bir bölümünü engellemeden tüm alanı görebilmesini sağlayacak kadar içeri girer. Ekranın etrafındaki fiziksel çerçeve olan kenarlık üreticiden üreticiye değiştiği için içeri girme oranı çeşitlilik gösterir. Güvenli görüntüleme alanı ekranın görünür olan alanını garantilemeye çalışır. Güvenli görüntüleme alanı
güvenli başlık alanı
olarak da bilinir.
Taşma alanı
ekranın kenarının arkasında kaldığı için görünmeyen alanıdır.
Adobe, ekranın her kenarında % 7,5 içe doğru giriş önerir. Örneğin:
Tam ekranlı bir AIR for TV uygulaması tasarlarken her zaman güvenli görüntüleme alanını göz önünde bulundurun:
-
Arka plan görüntüleri veya arka plan renkleri gibi arka planlar için tüm ekranı kullanın.
-
Metin, grafik, video ve kullanıcı arabirimi öğeleri gibi önemli uygulama öğeleri için yalnızca güvenli görüntüleme alanını kullanın.
Aşağıdaki tablo, % 7,5 girinti kullanarak tipik ekran çözünürlükleri için güvenli görüntüleme alanının boyutlarını gösterir.
Ekran çözünürlüğü
|
Güvenli görüntüleme alanının genişliği ve yüksekliği
|
Sol ve sağ girinti genişliği
|
Üst ve alt girinti yüksekliği
|
960 x 540
|
816 x 460
|
72
|
40
|
1280 x 720
|
1088 x 612
|
96
|
54
|
1920 x 1080
|
1632 x 918
|
144
|
81
|
Ancak, güvenli görüntüleme alanını her zaman dinamik olarak hesaplamak en iyi uygulamadır. Örneğin:
var horizontalInset, verticalInset, safeAreaWidth, safeAreaHeight:int;
horizontalInset = .075 * Capabilities.screenResolutionX;
verticalInset = .075 * Capabilities.screenResolutionY;
safeAreaWidth = Capabilities.screenResolutionX - (2 * horizontalInset);
safeAreaHeight = Capabilities.screenResolutionY - (2 * verticalInset);
Sahne alanının ölçek modu
Stage.scaleMod
e öğesini
StageScaleMode.NO_SCALE
olarak ayarlayın ve sahne alanı resize olaylarını dinleyin.
stage.scaleMode = StageScaleMode.NO_SCALE;
stage.addEventListener(Event.RESIZE, layoutHandler);
Bu ayar, sahne alanı koordinatları ile piksel koordinatlarını aynı duruma getirir.
FULL_SCREEN_INTERACTIVE
görüntüleme durumu ve
TOP_LEFT
sahne alanı hizalaması ile birlikte, bu ayar güvenli görüntüleme alanını etkin bir şekilde kullanmanıza izin verir.
Özellikle tam ekran uygulamalarda, bu ölçek modu Stage sınıfının
stageWidth
ve
stageHeight
özelliklerinin Capabilities sınıfının
screenResolutionX
ve
screenResolutionY
özelliklerine karşılık geldiği anlamına gelir.
Ayrıca, uygulama penceresinin boyutu değiştiğinde, sahne alanının içeriği tanımlı boyutunu korur. Çalışma zamanı otomatik mizanpaj veya ölçekleme gerçekleştirmez. Ayrıca, pencere boyut değiştirdiğinde çalışma zamanı Stage sınıfının
resize
olayını gönderir. Bu nedenle, uygulama başladığında ve uygulama penceresi yeniden boyutlandırıldığında uygulamanın içeriğinin nasıl ayarlanacağı konusunda tam kontrole sahipsinizdir.
Not:
NO_SCALE
davranışı herhangi bir AIR uygulaması ile aynıdır. Ancak, AIR for TV uygulamalarında bu ayarı kullanmak güvenli görüntüleme alanını kullanmak için önemlidir.
Sahne alanını hizalama
Stage.align
öğesini
StageAlign.TOP_LEFT
olarak ayarlayın:
stage.align = StageAlign.TOP_LEFT;
Hizalama,
0,0
koordinatını ActionScript kullanarak içerik yerleştirme işlemi için uygun bir alan olan ekranın sol üst köşesine yerleştirir.
NO_SCALE
ölçek modu ve
FULL_SCREEN_INTERACTIVE
görüntüleme durumu ile birlikte bu ayar güvenli görüntüleme alanını etkin bir şekilde kullanmanıza izin verir.
Sahne alanı görüntüleme durumu
Tam ekran bir AIR for TV uygulamasında
Stage.displayState
öğesini
StageDisplayState.FULL_SCREEN_INTERACTIVE
olarak ayarlayın:
stage.displayState = StageDisplayState.FULL_SCREEN_INTERACTIVE;
Bu değer AIR uygulamasını kullanıcı girdisine izin vererek sahne alanını tüm ekrana genişletecek şekilde ayarlar.
Adobe
FULL_SCREEN_INTERACTIVE
ayarını kullanmanızı önerir.
NO_SCALE
ölçek modu ve
TOP_LEFT
sahne hizalaması ile birlikte bu ayar güvenli görüntüleme alanını etkin bir şekilde kullanmanıza izin verir.
Bu nedenle, tam ekran uygulamalar için ana belge sınıfındaki
ADDED_TO_STAGE
olayı için bir işleyicide aşağıdakileri gerçekleştirin:
private function onStage(evt:Event):void
{
stage.scaleMode = StageScaleMode.NO_SCALE;
stage.align = StageAlign.TOP_LEFT;
stage.addEventListener(Event.RESIZE, onResize);
stage.displayState = StageDisplayState.FULL_SCREEN_INTERACTIVE;
}
Daha sonra
RESIZE
olayı işleyicisinde:
-
Ekran çözünürlüğü boyutlarını sahne alanı genişliği ve yüksekliği ile karşılaştırın. Bunlar aynıysa,
RESIZE
olayı sahne alanı görüntüleme durumu
FULL_SCREEN_INTERACTIVE
olarak değiştiği için ortaya çıkmıştır.
-
Güvenli görüntüleme alanı ve karşılık gelen girintilerin boyutlarını hesaplayın ve kaydedin.
private function onResize(evt:Event):void
{
if ((Capabilities.screenResolutionX == stage.stageWidth) &&
(Capabilities.screenResolutionY == stage.stageHeight))
{
// Calculate and save safe viewing area dimensions.
}
}
Sahne alanı boyutları
Capabilities.screenResolutionX
ve
screenResolutionY
ile eşit olduğunda, AIR for TV donanımın video ve grafikleriniz için mümkün olan en iyi aslına uygunluğu sunmasına neden olur.
Not:
Grafiklerin ve videonun TV ekranındaki aslına uygunluğu
Capabilities.screenResolutionX
ve
screenResolutionY
değerlerinden farklı olabilir. Bu AIR for TV'yi çalıştıran cihaza bağlıdır. Örneğin, AIR for TV'yi çalıştıran bir kod çözücü 1280 x 720 çözünürlüğe sahipken bağlı TV 1920 x 1080 çözünürlüğüne sahip olabilir. Ancak, AIR for TV donanımın en iyi aslına uygunluğu sunmasına neden olur. Bu nedenle, bu örnekte donanım 1920 x 1080 ekran çözünürlüğünü kullanarak 1080p bir video görüntüler.
Birden fazla ekran boyutu için tasarlama
Birden fazla AIR for TV aygıtında çalışması ve düzgün görünmesi için aynı tam ekran AIR for TV uygulamasını geliştirebilirsiniz. Aşağıdakileri yapın:
-
scaleMode
,
align
ve
displayState
sahne alanı özelliklerini önerilen değerlere ayarlayın: sırasıyla
StageScaleMode.NO_SCALE
,
StageAlign.TOP_LEFT
ve
StageDisplayState.FULL_SCREEN_INTERACTIVE
.
-
Capabilities.screenResolutionX
ve
Capabilities.screenResolutionY
öğelerine dayalı güvenli görüntüleme alanını ayarlayın.
-
İçeriğinizin boyutunu ve mizanpajını güvenli görüntüleme alanının genişliğine ve yüksekliğine göre ayarlayın.
Özellikle mobil aygıt uygulamalarıyla karşılaştırıldığında içeriğinizin nesneleri büyük olsa da, dinamik mizanpaj, göreceli konumlandırma ve uyarlanabilir içerik gibi kavramlar aynıdır. Bu kavramları desteklemek üzere ActionScript'le ilgili daha fazla bilgi almak için bkz.
Birden fazla ekran boyutu için mobil Flash içeriği geliştirme
.
Sahne alanının kalitesi
Bir TV için AIR uygulamasının
Stage.quality
özelliği her zaman
StageQuality.High
şeklindedir. Bunu değiştiremezsiniz.
Bu özellik, tüm Stage nesnelerinin oluşturulma kalitesini belirtir.
Uzaktan kumanda girdisini işleme
Kullanıcılar genellikle AIR for TV uygulamalarınızla uzaktan kumanda ile etkileşime geçerler. Ancak, tuş girdisini bir masaüstü uygulamasındaki klavyeden gelen tuş girdisiyle aynı şekilde işleyin. Özellikle
KeyboardEvent.KEY_DOWN
olayını işleyin. Daha fazla bilgi için
ActionScript 3.0 Geliştirici Kılavuzu
içindeki
Klavye girdisini yakalama
bölümüne bakın.
Uzaktan kumanda üzerindeki tuşlar ActionScript sabitleri ile eşleşir. Örneğin, bir uzaktan kumandadaki yön tuş takımının tuşları şu şekilde eşleşir:
Uzaktan kumandanın yön tuş takımı tuşu
|
ActionScript 3.0 sabiti
|
Yukarı
|
Keyboard.UP
|
Aşağı
|
Keyboard.DOWN
|
Sol
|
Keyboard.LEFT
|
Sağ
|
Keyboard.RIGHT
|
Tamam veya Seç
|
Keyboard.ENTER
|
AIR 2.5 uzaktan kumanda girdisini desteklemek için diğer birçok Keyboard sabitini eklemiştir. Tam bir liste için
Adobe Flash Platform için ActionScript 3.0 Başvurusu
içindeki
Keyboard sınıfı
bölümüne bakın.
Uygulamanızın mümkün olduğu kadar çok aygıtta çalıştığından emin olmak için Adobe şunları önerir:
-
Mümkünse yalnızca yön tuş takımı tuşlarını kullanın.
Farklı uzaktan kumanda aygıtları farklı tuş takımlarına sahiptir. Ancak, bunlar tipik olarak her zaman yön tuş takımı tuşlarına sahiptir.
Örneğin, bir Blu-ray oynatıcısının uzaktan kumandası genelde "üstteki kanal" ve "alttaki kanal" tuşlarına sahip değildir. Oynat, duraklat, durdur tuşları bile her uzaktan kumanda da olmayabilir.
-
Uygulama yön tuş takımı tuşlarından daha fazlasına ihtiyaç duyuyorsa Menu (Menü) ve Info (Bilgi) tuşlarını kullanır.
Menu (Menü) ve Info (Bilgi) tuşları uzaktan kumandalardaki ikinci en yaygın tuşlardır.
-
Evrensel uzaktan kumandaların sık sık kullanıldığını unutmayın.
Belirli bir aygıt için bir uygulama oluşturuyor olsanız bile, çok sayıda kullanıcının aygıtla birlikte gelen uzaktan kumandayı kullanmadığını unutmayın. Bunun yerine, evrensel uzaktan kumanda kullanmaktadırlar. Ayrıca, kullanıcılar her zaman evrensel uzaktan kumandalarını aygıtın uzaktan kumandasıyla eşleşecek şekilde programlamazlar. Bu nedenle, yalnızca en sık kullanılan tuşların kullanılması tavsiye edilir.
-
Kullanıcının her zaman yön tuş takımı tuşlarından birini kullanarak belirli bir durumdan çıkabileceğinden emin olun.
Bazı durumlarda uygulamanız uzaktan kumandalarda çok sık kullanılmayan tuşlardan birini kullanmak için iyi bir nedene sahip olabilir. Yön tuş takımı tuşlarından biriyle kaçış yolu sağlamak uygulamanızın tüm aygıtlarda düzgün bir şekilde çalışmasını sağlar.
-
Hedef TV için AIR aygıtının işaretçi girdisi özelliğine sahip olduğundan emin değilseniz işaretçi girdisini gerekli kılmayın.
Birçok masaüstü uygulaması fare girdisi beklese de, çoğu televizyon işaretçi girdisini desteklemez. Bu nedenle, televizyonlarda çalıştırmak için masaüstü uygulamalarını dönüştürüyorsanız, uygulamayı fare girdisi beklemeyecek şekilde değiştirdiğinizden emin olun. Bu değişiklikler olay işleme değişikliklerini ve kullanıcı talimatları değişikliklerini içerir. Örneğin, bir uygulamanın başlangıç ekranı görüntülendiğinde "Başlamak için tıklatın" yazan metni kullanmayın.
Odak yönetme
Bir kullanıcı arabirimi öğesi bir masaüstü uygulamasında odağa sahip olduğunda, klavye ve fare olayları gibi kullanıcı girdisi olaylarının hedefidir. Ayrıca, bir uygulama kullanıcı arabirimi öğesini odak ile vurgular. Bir AIR for TV uygulamasında odak yönetmek bir masaüstü uygulamasında odak yönetmekten farklıdır. Bunun nedeni şudur:
-
Masaüstü uygulamaları genellikle odağı bir sonraki kullanıcı arabirimi öğesine değiştirmek için tab tuşunu kullanır. Tab tuşunu kullanmak AIR for TV uygulamaları için geçerli değildir. Uzaktan kumanda aygıtları genellikle bir tab tuşuna sahip değildir. Bu nedenle, masaüstündeki gibi bir DisplayObject öğesinin
tabEnabled
özelliği ile odak yönetme işlemi geçerli değildir.
-
Masaüstü uygulamaları genellikle bir kullanıcı arabirimi öğesine odak vermek için kullanıcının fareyi kullanmasını beklerler.
Bu nedenle, uygulamanızda aşağıdakileri yapın:
-
KeyboardEvent.KEY_DOWN
gibi Keyboard olaylarını dinleyen Sahne Alanı'na bir olay dinleyicisi ekleyin.
-
Son kullanıcıya hangi kullanıcı arabiriminin vurgulanacağını belirlemek için uygulama mantığı sağlayın. Uygulama başladığında bir kullanıcı arabirimi öğesi vurguladığınızdan emin olun.
-
Uygulama mantığınıza göre Sahne Alanı'nın aldığı Keyboard olayını uygun kullanıcı arabirimi öğesi nesnesine gönderin.
Ayrıca bir kullanıcı arabirimi öğesine odak atamak için
Stage.focus
veya
Stage.assignFocus()
öğesini de kullanabilirsiniz. Ardından keyboard olayları almasını sağlamak için o DisplayObject nesnesine bir olay dinleyicisi ekleyebilirsiniz.
Kullanıcı arabirimi tasarımı
Şunlarla ilgili önerileri dahil ederek AIR for TV uygulamasının kullanıcı arabiriminin televizyonlarda düzgün bir biçimde çalışmasını sağlayın:
-
uygulamanın yanıt verme özelliği
-
uygulamanın kullanılabilirliği
-
kullanıcının kişiliği ve beklentileri
Yanıt verme
Bir AIR for TV uygulamasını mümkün olduğu kadar yanıt verir duruma getirmek için aşağıdaki ipuçlarını kullanın.
-
Uygulamanın ilk SWF dosyasını mümkün olduğunca küçük yapın.
İlk SWF dosyasında yalnızca uygulamayı başlatmak için gerekli olan kaynakları yükleyin. Örneğin, yalnızca uygulamanın başlangıç ekranı görüntüsü yükleyin.
Bu öneri masaüstü AIR uygulamaları için geçerli olsa da, AIR for TV aygıtları için daha önemlidir. Örneğin, AIR for TV aygıtları masaüstü bilgisayarların sahip olduğu işleme gücüne sahip değildir. Ayrıca, bunlar uygulamayı flash belleğinde saklar. Bunlara erişim masaüstü bilgisayarlardaki sabit disklere olduğu kadar hızlı değildir.
-
Uygulamanın en az saniye başına 20 kare hızında çalışmasını sağlayın.
Bu amaca ulaşmak için grafiklerinizi tasarlayın. Grafiklerinizin karmaşıklığı saniye başına kare hızını etkileyebilir. Görüntü oluşturma performansını iyileştirme hakkında ipuçları için bkz:
Adobe Flash Platform için Performansı En İyi Duruma Getirme
Not:
AIR for TV aygıtlarındaki grafik donanımı genellikle ekranı 60 Hz veya 120 Hz (saniyede 60 veya 120 kez) hızıyla günceller. Örneğin, donanım 60 HZ veya 120 HZ ekrandaki görüntü için sahne alanını saniye başına 30 kare veya saniye başına 60 kare hızıyla tarar. Ancak, kullanıcının bu yüksek kare hızlarını tecrübe edip etmemesi uygulamanın grafiklerinin karmaşıklığına bağlıdır.
-
Ekranı kullanıcı girdisinin 100 - 200 milisaniyesi içinde güncelleyin.
Güncelleme uzun sürerse kullanıcı sabırsızlanır ve bu genellikle birden fazla tuş basımına neden olur.
Kullanılabilirlik
AIR for TV uygulamalarının kullanıcıları “oturma odası” ortamındadırlar. TV'den 3 metre ilerde, odanın karşısında otururlar. Bazen oda karanlıktır. Girdi için genellikle uzaktan kumanda cihazı kullanırlar. Bazen birlikte, bazen sırayla uygulamayı birden fazla kişi kullanıyor olabilir.
Bu nedenle, kullanıcı arabiriminizi bir TV'de kullanılabilmek üzere tasarlamak için aşağıdakileri göz önünde bulundurun:
-
Kullanıcı arabirimi öğelerini büyük yapın.
Metin, düğmeler veya diğer kullanıcı arabirimi öğelerini tasarlarken, kullanıcının odanın karşısında oturduğunu unutmayın. Her şeyi, örneğin 3 metre ileriden kolaylıkla görülecek ve okunacak şekilde ayarlayın. Ekran büyük olduğu için ekranın içeriğini kalabalık tutmaya çalışmayın.
-
İçeriğin odanın karşısından kolaylıkla görülmesini ve okunmasını sağlamak için iyi bir kontrast kullanın.
-
Öğeyi parlak hale getirerek hangi kullanıcı arabirimi öğesinin kullanımda olduğunu belli edin.
-
Hareketi yalnızca gerektiğinde kullanın. Örneğin, süreklilik için bir ekrandan diğerine kayarak geçme işlemi uygun olabilir. Ancak, hareket kullanıcının gezinmesine yardımcı olmuyorsa veya uygulamaya yerleşik değilse dikkat dağıtıcı olabilir.
-
Her zaman kullanıcıya kullanıcı arabirimi aracılığıyla geri gitmek için belirgin bir yol sağlayın.
Uzaktan kumanda kullanımıyla ilgili daha fazla bilgi için bkz.
Uzaktan kumanda girdisini işleme
.
Kullanıcının kişiliği ve beklentileri
AIR for TV uygulamalarının kullanıcılarının genellikle eğlenceli ve rahat bir ortamda TV kalitesi eğlencesi aradıklarını göz önünde bulundurun. Bilgisayarlar veya teknoloji hakkında mutlaka bilgi sahibi olmak zorunda değildirler.
Bu nedenle, AIR for TV uygulamalarını aşağıdaki özelliklerle tasarlayın:
-
Teknik terimler kullanmayın.
-
Kalıcı iletişim kutularından kaçının.
-
Çalışma ortamı veya teknik ortam için değil, oturma odası ortamı için uygun olan samimi, resmi olmayan talimatlar kullanın.
-
TV izleyicilerinin beklediği yüksek üretim kalitesine sahip grafikler kullanın.
-
Uzaktan kumanda cihazıyla kolaylıkla çalışan bir kullanıcı arabirimi oluşturun. Masaüstü veya mobil uygulamalar için daha uygun olan kullanıcı arabirimi veya tasarım öğeleri kullanmayın. Örneğin, masaüstü ve mobil cihazlardaki kullanıcı arabirimleri genellikle işaret etmeyi ve fare veya parmak ile düğmeleri tıklatmayı içerir.
Fontlar ve metin
AIR for TV uygulamanızda aygıt fontlarını veya gömülü fontları kullanabilirsiniz.
Aygıt fontları, bir aygıtta yüklü olan fontlardır. Tüm AIR for TV aygıtlarında aşağıdaki aygıt fontları vardır:
Font adı
|
Açıklama
|
_sans
|
_sans
aygıt fontu sans-serif yazı biçimidir. Tüm AIR for TV aygıtlarında yüklü olan
_sans
aygıt fontu Myriad Pro'dur. Genellikle, görüş mesafesi nedeniyle sans-serif yazı biçimi TV'de serif yazı biçimlerinden daha iyi görünür.
|
_serif
|
_serif
aygıt fontu serif yazı biçimidir. Tüm AIR for TV aygıtlarında yüklü olan
_serif
aygıt fontu Minion Pro'dur.
|
_typewriter
|
_typewriter
aygıt fontu tek aralıklı bir fonttur. Tüm AIR for TV aygıtlarında yüklü olan
_typewriter
aygıt fontu Courier Std fontudur.
|
Tüm AIR for TV aygıtları ayrıca aşağıdaki Asya aygıt fontlarına da sahiptir:
Font adı
|
Dil
|
Yazı biçimi kategorisi
|
yerel ayar kodu
|
RyoGothicPlusN-Regular
|
Japonca
|
sans
|
ja
|
RyoTextPlusN-Regular
|
Japonca
|
serif
|
ja
|
AdobeGothicStd-Light
|
Korece
|
sans
|
ko
|
AdobeHeitiStd-Regular
|
Basitleştirilmiş Çince
|
sans
|
zh_CN
|
AdobeSongStd-Light
|
Basitleştirilmiş Çince
|
serif
|
zh_CN
|
AdobeMingStd-Light
|
Geleneksel Çince
|
serif
|
zh_TW ve zh_HK
|
Bu AIR for TV aygıt fontları:
-
Adobe® Yazım Kitaplığı'ndandır
-
Televizyonlarda iyi görünür
-
Video ek bilgileri için tasarlanmıştır
-
Bitmap fontları değil, font özetleridirler
Not:
Aygıt üreticileri genellikle aygıta diğer aygıt fontlarını da dahil ederler. Bu üretici tarafından sağlanan aygıt fontları, AIR for TV aygıt fontlarına ek olarak yüklenir.
Adobe, aygıtta tüm aygıt fontlarını görüntüleyen FontMaster Deluxe adlı bir uygulama sağlar. Uygulama
TV için Flash Platform
'da bulunabilir.
Ayrıca, AIR for TV uygulamanıza font gömebilirsiniz. Gömülü fontlarla ilgili bilgi için
ActionScript 3.0 Geliştirici Kılavuzu
içindeki
Gelişmiş metin oluşturma
bölümüne bakın.
Adobe, TLF metin alanlarının kullanımıyla ilgili aşağıdakileri önerir:
-
Uygulamanın çalıştığı yerel ayardan faydalanmak üzere Asya dili metinleri için TLF metin alanlarını kullanın. TLFTextField nesnesiyle ilişkili TextLayoutFormat nesnesinin
locale
özelliğini ayarlayın. Geçerli yerel ayarı belirlemek için
ActionScript 3.0 Geliştirici Kılavuzu
içindeki
Bir yerel ayar seçme
bölümüne bakın.
-
Font AIR for TV aygıt fontlarından biri değilse TextLayoutFormat nesnesinde
fontFamily
özelliğinde font adını belirtin. AIR for TV, aygıtta mevcutsa fontu kullanır. İstediğiniz font aygıtta değilse,
locale
ayarına bağlı olarak, AIR for TV uygun AIR for TV aygıt fontunu yerine kullanır.
-
AIR for TV'nin doğru AIR for TV aygıt fontunu seçmesini sağlamak için
locale
özelliğini ayarlayarak
fontFamily
özelliği için
_sans
,
_serif
veya
_typewriter
öğesini belirtin. Yerel ayarlara bağlı olarak, AIR for TV Asya aygıt fontları kümesinden veya Asya aygıt fontu olmayan kümeden seçim yapar. Bu ayarlar dört büyük Asya yerel ayarı ve İngilizce için otomatik olarak doğru fontu kullanmanızı sağlamak üzere kolay bir yol sağlar.
Not:
Asya dili metni için klasik metin alanlarını kullanırsanız, düzgün oluşturmayı sağlamak için bir AIR for TV aygıt fontunun adını belirtin. Hedef aygıtınızda farklı bir fontun yüklü olduğunu biliyorsanız, onu da belirtebilirsiniz.
Uygulama performansı ile ilgili olarak aşağıdakileri göz önünde bulundurun:
-
Klasik metin alanları TLF metin alanlarından daha hızlı performans sağlar.
-
Bitmap fontları kullanan bir klasik metin alanı en hızlı performansı sağlar.
Bitmap fontları, her karakter hakkında yalnızca özet veri sağlayan özet fontlarının aksine her karakter için bitmap sağlar. Aygıt fontları ve gömülü fontlar bitmap fontları olabilir.
-
Aygıt fontu belirtirseniz, aygıt fontunun hedef aygıtınızda yüklü olduğundan emin olun. Aygıtınızda yüklü değilse, AIR for TV aygıtınızda yüklü olan başka bir fontu bulur ve kullanır. Ancak, bu davranış uygulamanın performansını yavaşlatır.
-
Herhangi bir görüntüleme nesnesinde olduğu gibi TextField nesnesi genellikle değişmiyorsa, nesnenin
cacheAsBitmap
özelliğini
true
olarak ayarlayın. Bu ayar, soldurma, kayma ve alfa karıştırma gibi geçişler için performansı artırır. Ölçekleme ve çeviri için
cacheAsBitmapMatrix
öğesini kullanın. Daha fazla bilgi için bkz.
Grafik donanım hızlandırması
.
Dosya sistemi güvenliği
AIR for TV uygulamaları AIR uygulamalarıdır ve bu nedenle, aygıtın dosya sistemine erişebilir. Ancak, bir “oturma odası” aygıtında bir uygulamanın aygıt sistemi dosyalarına veya diğer uygulamaların dosyalarına erişemiyor olması çok önemlidir. TV ve ilişkili aygıtların kullanıcıları yalnızca TV izliyor olduklarından, aygıtta sorun oluşmasını beklemez ve bu sorunları hoş karşılamazlar.
Bu nedenle, AIR for TV uygulaması aygıtın dosya sisteminin sınırlı bir görünümüne sahiptir. ActionScript 3.0'ı kullanarak uygulamanız yalnızca belirli dizinlere (ve bunların alt dizinlerine) erişebilir. Ayrıca, ActionScript'te kullandığınız dizin adları aygıttaki gerçek dizin adları değildir. Bu ekstra katman AIR for TV uygulamalarını, uygulamaya ait olmayan yerel dosyalara kötü niyetle veya yanlışlıkla erişmekten korur.
Ayrıntılı bilgi için bkz.
AIR for TV uygulamaları için dizin görünümü
.
AIR uygulamasının sanal alanı
Uygulama yaşam döngüsü
Bir masaüstü ortamının aksine, son kullanıcı AIR for TV uygulamanızın çalıştığı pencereyi kapatamaz. Bu nedenle, uygulamadan çıkmak için bir kullanıcı arabirimi mekanizması sağlayın.
Genellikle, bir aygıt son kullanıcının uzaktan kumandadaki çıkış tuşuyla bir uygulamadan koşulsuz olarak çıkmasına izin verir. Ancak, AIR for TV uygulamaya
flash.events.Event.EXITING
olayını göndermez. Bu nedenle, uygulamanın bir sonraki başlangıcında kendini uygun bir duruma geri yükleyebilmesini sağlamak için uygulama durumunu sık sık kaydedin.
HTTP tanımlama bilgileri
AIR for TV, HTTP kalıcı tanımlama bilgilerini ve oturum tanımlama bilgilerini destekler. AIR for TV, her AIR uygulamasının tanımlama bilgilerini uygulamaya özgü bir dizinde depolar.
/app-storage/<app id>/Local Store
Tanımlama bilgisi dosyası
cookies
olarak adlandırılır.
Not:
Masaüstü aygıtlar gibi diğer aygıtlarda bulunan AIR uygulaması, tanımlama bilgilerini her uygulama için ayrı ayrı depolamaz. Uygulamaya özgü tanımlama bilgisi depolaması uygulamayı ve AIR for TV uygulamasının sistem güvenlik modelini destekler.
URLRequest.manageCookies
ActionScript özelliğini şu şekilde kullanın:
-
manageCookies
öğesini
true
olarak ayarlayın. Bu değer varsayılan değerdir. Bu AIR for TV'nin HTTP isteklerine otomatik olarak tanımlama bilgisi eklediği ve HTTP yanıtındaki tanımlama bilgilerini hatırladığı anlamına gelir.
Not:
ManageCookies
true
olsa bile, uygulama
URLRequest.requestHeaders
öğesini kullanarak bir HTTP isteğine manuel olarak tanımlama bilgisi ekleyebilir. Bu tanımlama bilgisi AIR for TV'nin yönettiği tanımlama bilgisiyle aynı ada sahipse, istek aynı adlı iki tanımlama bilgisini içerir. İki tanımlama bilgisinin değerleri farklı olabilir.
-
manageCookies
öğesini
false
olarak ayarlayın. Bu değer, uygulamanın HTTP istekleri için tanımlama bilgisi gönderme ve HTTP yanıtındaki tanımlama bilgilerini hatırlama sorumluluğuna sahip olduğu anlamına gelir.
Daha fazla bilgi için bkz.
URLRequest
.
|
|
|