AIR for TV uygulaması tasarımında dikkat edilmesi gerekenler

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:

  • StageVideo sınıfı ve ilgili sınıflar.

  • StageVideo sınıfının kullanım sınırlamaları.

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:

  • Bitmap görüntüsü oluşturma

  • Bitmap ölçekleme

  • Bitmap karıştırma

  • Kesintisiz dikdörtgen dolgusu

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:

  • Geçişleri kaydırma

  • Geçişleri ölçekleme

  • Çoğalarak girme ve azalarak çıkma

  • Alfa ile birden çok görüntüyü birleştirme

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:

Grafiği tam boyut görüntüle
1920 X 1080 ekran çözünürlüğü için güvenli görüntüleme alanı

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:

  1. 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 .

  2. Capabilities.screenResolutionX ve Capabilities.screenResolutionY öğelerine dayalı güvenli görüntüleme alanını ayarlayın.

  3. İç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ı

AIR for TV uygulamaları AIR uygulaması sanal alanı bölümünde açıklanan AIR uygulaması sanal alanında çalışır.

AIR for TV uygulamalarının tek farkı Dosya sistemi güvenliği bölümünde açıklandığı gibi dosya sistemine sınırlı erişimleri olmasıdır.

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 .