Ses özellikleri

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ın STREAM_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.