Ses çalarlar, ses sisteminin çalışma biçimini tanımlayan özellikleri destekler yönlendirme, hacim ve odakla ilgili kararların verilmesine yardımcı olur. Uygulamalar ses oynatmasına özellikler (örneğin, akış hizmeti veya yeni e-posta için bir bildirim) sonra da ses sisteminin bu özellikleri kullandığı çerçevenin "source" özelliği uygulamaların son durumu hakkında bilgilendirilmesine yardımcı olur. bahsedeceğim.
Android 4.4 ve önceki sürümlerde çerçeve, karıştırma kararlarını yalnızca ses yayını türü. Ancak bu tür kararları akış türüne dayandırmak da çok zordu. Bu sınırlama, birden fazla uygulama ve cihazda kaliteli çıktılar elde etmenizi sağlar. Örneğin, bir mobil cihazda bazı uygulamalar (ör. Google Haritalar) Google Haritalar'daki STREAM_MUSIC akış türünde arabayla yol tarifleri; ancak mobil cihazlarda projeksiyon modunda (ör. Android Auto) uygulamalar, farklı sürüş özelliklerini diğer medya akışlarıyla yol tarifi alabilirsiniz.
Her bir Ses Attribute API özelliği kullanıldığında, uygulamalar ses sistemine belirli bir ses kaynağıyla ilgili bilgiler, örneğin kullanım (kaynağın neden oynatılıyor), içerik türü (kaynağın oynattığı içerik), işaretler (kaynak olanları) ve bağlamları (Android 9'da yeni olan) içerir. Sözdizimi:
AudioAttributes { mUsage mContentType mSource mFlags mTags / mFormattedTags / mBundle (key value pairs) }
- Kullanım. Kaynağın neden oynattığını belirtir ve etkili bir yoludur.
- İçerik türü. Kaynağın ne çaldığını belirtir (müzik, film, konuşma, sonifikasyon, bilinmeyen).
- Bağlam. Ses HAL'ye özetlenen kullanım değerleri.
- İşaretler. Kaynağın nasıl oynatılması gerektiğini belirtir. Sesli yaptırım desteği içerir ( için geçerlidir) ve donanım ses/görüntü senkronizasyonunu kullanabilirsiniz.
Dinamik işleme için uygulamaların film, müzik ve ve konuşma içeriğinden yararlanın. Verinin kendisiyle ilgili bilgiler de önemli olabilir. Örneğin: ses yüksekliği ve en yüksek örnek değeri.
Özellikleri kullan
Kullanım, akışın kullanıldığı bağlamı belirtir. sesin neden çaldığı ve ne için kullanıldığıyla ilgili bilgi sağlar. Kullanım bilgileri, akış türünden daha anlamlıdır ve platformlara olanak tanır. ya da yönlendirme politikalarını daha hassas bir şekilde yönetmenizi sağlar.
Her örnek için aşağıdaki kullanım değerlerinden birini sağlayın:
- KULLANIM_BİLİNMİYOR
- USAGE_MEDIA
- KULLANIM_VOICE_COMMUNICATION
- KULLANIM_VOICE_COMMUNICATION_SIGNALLING
- KULLANIM_ALARMı
- USAGE_BİLDİRİM
- KULLANIM_BİLDİRİM_TELEPHONY_RINGTONE
- KULLANIM_BİLDİRİM_COMMUNICATION_REQUEST
- KULLANIM_BİLDİRİM_COMMUNICATION_INSTANT
- KULLANIM_BİLDİRİM_COMMUNICATION_ isterseniz:
- KULLANIM_BİLDİRİM_ETKİNLİĞİ
- KULLANIM_ASSISTANCE_ACCESSIBILITY
- USAGE_ASSISTANCE_NAVIGATION_Kılavuzu
- USAGE_ASSISTANCE_SONIFICATION
- USAGE_GAME [KULLANIM_OYUNU]
- KULLANIM_VIRTUAL_KAYNAĞI
- KULLANIM_ASİSTANI
Ses özelliği kullanım değerleri birlikte kullanılamaz. Örnekler için
USAGE_MEDIA
.
ve
USAGE_ALARM
tanımlar; İstisnalar için
AudioAttributes.Builder
belirler.
İçerik türü
İçerik türü, sesin ne olduğunu tanımlar ve
film, konuşma veya bip sesi/zil sesi gibi içerikler dahildir. Ses çerçevesi
ses işleme sonrası süreci seçmeli olarak yapılandırmak için içerik türü bilgileri
engeller. İçerik türünün sağlanması isteğe bağlı olsa da,
bilindiği durumlarda, örneğin
Film akış hizmeti için CONTENT_TYPE_MOVIE
veya
Müzik çalma uygulaması için CONTENT_TYPE_MUSIC
.
Herhangi bir örnek için aşağıdaki içerik türü değerlerinden birini sağlayın:
CONTENT_TYPE_UNKNOWN
(varsayılan)CONTENT_TYPE_MOVIE
CONTENT_TYPE_MUSIC
CONTENT_TYPE_SONIFICATION
CONTENT_TYPE_SPEECH
Ses özelliği içerik türü değerleri birlikte kullanılamaz. İçerik türleriyle ilgili ayrıntılar için bu sayfaya ses özellik API'si özelliğini gönderin.
Bağlamlar
Android'deki her ses, sorumlu uygulama ve seslendirme amacı
üretilmesi için gereken Android cihazlar bu bilgileri kullanarak
sesin nasıl sunulacağını belirler. Android 8.x ve önceki sürümlerde uygulamalar
Eski yayın türlerini (ör.
AudioSystem.STREAM_MUSIC
) veya AudioAttributes
. İçinde
Android 9, AudioAttributes.usage
değerleri
HAL düzeyinde Bağlamlar olarak soyutlanır.
HAL ses bağlamları | AudioAttributes kullanımı |
---|---|
MÜZİK | MEDYA |
SES_KOMUTU | KULLANIM_ASİSTANI |
NAVIGATION | ASSISTANCE_NAVIGATION_Kılavuzu |
ARA | SES_İLETİŞİMİ |
Zil Sesi | BİLDİRİM_ÇALIŞANI |
BİLDİRİM | BİLDİRİM |
ALARM | ALARM |
SİSTEM_SESİ | ASSISTANCE_SONIFICATION |
BİLİNMİYOR | BİLİNMİYOR |
Aşağıdaki CONTEXT_NUMBER
değerlerinden birini
örnek:
- MUSIC_CONTEXT // Müzik çalma
- NAVIGATION_CONTEXT // Gezinme yol tarifleri
- VOICE_COMMAND_CONTEXT // Sesli komut oturumu
- CALL_RING_CONTEXT // Zil çaldıran sesli arama
- CALL_CONTEXT // Sesli arama
- ALARM_CONTEXT // Android'den alarm sesi
- bildirim_CONTEXT // Bildirimler
- SYSTEM_SE_CONTEXT // Kullanıcı etkileşimi sesleri (düğme tıklamaları vb.)
Bayraklar
İşaretler, ses çerçevesinin ses oynatma efektlerini nasıl uygulayacağını belirtir. Bir örnek için aşağıdaki işaretlerden birini veya daha fazlasını sağlayın:
FLAG_AUDIBILITY_ENFORCED
Sistemin tam olarak anlayabilmelidir. Eski markaların ihtiyaçlarını karşılamak için kullanınSTREAM_SYSTEM_ENFORCED
(ör. kameranın deklanşör sesinin zorlanması).HW_AV_SYNC
Sistemden bir çıkış akışı seçmesini ister destekleyen bir donanım A/V senkronizasyonunu destekler.
Ses özelliği işaretleri münhasır değildir ve birleştirilebilir. Ayrıntılı bilgi için hakkında daha fazla bilgi için ses özellik API'si özelliğini gönderin.
Örnek
Bu örnekte, AudioAttributes.Builder
Yeni bir AudioTrack
tarafından kullanılacak AudioAttributes
örnek:
AudioTrack myTrack = new AudioTrack( new AudioAttributes.Builder() .setUsage(AudioAttributes.USAGE_MEDIA) .setContentType(AudioAttributes.CONTENT_TYPE_MUSIC) .build(), myFormat, myBuffSize, AudioTrack.MODE_STREAM, mySession);
Uyumluluk
Uygulama geliştiriciler, oluşturma veya güncelleme yaparken ses özelliklerini kullanmalıdır. Android 5.0 ve sonraki sürümler için olan uygulamalar hakkında daha fazla bilgi edinin. Ancak uygulamalar gerekli özellikler; eski akış türlerini işleyebilir veya özellikleri hakkında bilgi sahibi olmayan bir şey bilmemelidir.
Bu tür durumlarda, çerçeve daha eski ve yeniden oluşturulmuş eski ses akışını otomatik olarak çevirerek cihazlar ve Android sürümleri ses özelliklerine türlerine bakalım. Ancak bu çerçeve cihazlar, üreticiler veya Android sürümleri genelinde bu eşlemenin garanti edildiği anlamına gelir.
Uyumluluk eşlemeleri:
Android 5.0 ve sonraki sürümler | Android 4.4 ve önceki sürümler |
---|---|
CONTENT_TYPE_SPEECH USAGE_VOICE_COMMUNICATION
|
STREAM_VOICE_CALL
|
CONTENT_TYPE_SONIFICATION USAGE_ASSISTANCE_SONIFICATION
|
STREAM_SYSTEM
|
CONTENT_TYPE_SONIFICATION USAGE_NOTIFICATION_RINGTONE
|
STREAM_RING
|
CONTENT_TYPE_MUSIC USAGE_UNKNOWN USAGE_MEDIA USAGE_GAME USAGE_ASSISTANCE_ACCESSIBILITY USAGE_ASSISTANCE_NAVIGATION_GUIDANCE
|
STREAM_MUSIC
|
CONTENT_TYPE_SONIFICATION USAGE_ALARM
|
STREAM_ALARM
|
CONTENT_TYPE_SONIFICATION USAGE_NOTIFICATION USAGE_NOTIFICATION_COMMUNICATION_REQUEST USAGE_NOTIFICATION_COMMUNICATION_INSTANT USAGE_NOTIFICATION_COMMUNICATION_DELAYED USAGE_NOTIFICATION_EVENT
|
STREAM_NOTIFICATION
|
CONTENT_TYPE_SPEECH
|
(@gizle) STREAM_BLUETOOTH_SCO
|
FLAG_AUDIBILITY_ENFORCED
|
(@gizle) STREAM_SYSTEM_ENFORCED
|
CONTENT_TYPE_SONIFICATION USAGE_VOICE_COMMUNICATION_SIGNALLING
|
(@gizle) STREAM_DTMF
|
Kullanımdan kaldırılan akış türleri
Android 9, aşağıdaki akış türlerini kullanımdan kaldırıyor: otomotiv kullanımı:
- AKIŞ_VARSAYILANI
- STREAM_VOICE_CALL
- AKIŞ_SİSTEMİ
- STREAM_RING
- STREAM_MUSIC
- CANLI_ALARM
- STREAM_BİLDİRİM
- STREAM_BLUETOOTH_SCO
- AKIŞ_SİSTEMİ_ENFORCED
- AKIŞ_DTMF
- STREAM_TTS
- STREAM_ACCESSIBILITY
Daha fazla bilgi için bkz. Automotive Audio.