Oboe ile Yüksek Performanslı Oyun Sesi

Oboe, Android'de yüksek performanslı ses uygulamaları oluşturmayı kolaylaştıran bir C ++ kitaplığıdır. Öncelikle, geliştiricilerin birden çok API düzeyinde çalışan basitleştirilmiş bir API'yi API düzeyi 16'ya (Jelly Bean) hedeflemesine izin vermek için oluşturulmuştur.


Görsel Referansı


Android 8.1 (API seviyesi 27) ve üstü çalıştıran Android cihazlarda Oboe, Android 4.1 (API seviyesi 16) ve üstü ile geriye dönük uyumluluğu (OpenSL ES kullanarak) korurken AAudio'nun gelişmiş performansından ve özelliklerinden yararlanır. Oboe; ayrıca yeniden örnekleme, format dönüştürme ve dinamik gecikme ayarı gibi ses geliştirici deneyimini iyileştirmek için platform API'lerinin üzerine temel özellikler ekler.


Oboe Entegrasyonu


Oboe kitaplığı hazırlamalarını projenize dahil etmenin iki ana yolu vardır. CMake ile birlikte Android Gradle eklentisi sürüm 4.1.0 veya üzerini kullanıyorsanız ve paylaşılan STL kullanıyorsanız veya etkinleştirebiliyorsanız, Oboe'u etkinleştirmek Gradle bağımlılıklarınıza Oboe eklemek, hazır yapıları etkinleştirmek ve CMakeLists dosyanız.


Ayrıca, Android Oyun SDK'sını kullanarak statik olarak bağlanarak Oboe'u entegre edebilirsiniz. Kitaplığı indirip kaynak kontrol sisteminize kontrol ederek başlayın. NDK sürüm 18 veya üzeri ile minSdkVersion 16 veya üzeri kullanmanız gerekir. Ardından, verilen ABI, API seviyesi, NDK ve STL kombinasyonu için derlenen bağlantı kurulacak oyun SDK'sının sürümünü belirtmek için, bu formda bir derleyici dahil etme yolu ekleyin:

gamesdk/libs/[architecture]_API[apiLevel]_NDK[ndkVersion]_[stlVersion]_ReleaseExample: gamesdk/libs/arm64-v8a_API24_NDK18_cpp_static_Release

Ses çıkışı sağlamak için, akış yeni veri gerektirdiğinde kullanılan bir geri arama dahil olmak üzere, gerekli özelliklere sahip bir akış oluşturarak başlarsınız.

oboe::AudioStreamBuilder builder;
builder.setPerformanceMode(oboe::PerformanceMode::LowLatency)->setSharingMode(oboe::SharingMode::Exclusive)->setDataCallback(myCallback)->setFormat(oboe::AudioFormat::Float);

Daha sonra callback ses verilerini dolduracaksınız. Akış başarılı bir şekilde oluşturulursa, bu, istenen akış türünü aldığınız anlamına gelir. Bu türleri belirtmediyseniz, hangi biçimin döndürüldüğünü görmek için sorgulamanız gerekir.

class MyCallback : public oboe::AudioStreamDataCallback {public:
    oboe::DataCallbackResult
    onAudioReady(oboe::AudioStream *audioStream, void *audioData, int32_t numFrames) {// We requested AudioFormat::Floatauto *outputData = static_cast<float *>(audioData);// TODO: populate audioData herereturn oboe::DataCallbackResult::Continue;}};

Daha detaylı bilgiye aşağıdaki linklerden erişebilirsiniz:

https://github.com/google/oboe

https://android-developers.googleblog.com/2021/03/high-performance-game-audio-with-oboe.html

https://developer.android.com/codelabs/musicalgame-using-oboe#0


#android #audio #oboe

0 yorum

Son Paylaşımlar

Hepsini Gör

Komünite

Platform

Mobiler.dev Anasayfa
  • Twitter
  • Instagram
  • development_düzenlendi_düzenlendi
  • Youtube
  • slack-icon-black_edited_edited_edited
  • Gri LinkedIn Simge
imageedit_2_9667998092.png
JetBrains Hakkında Detaylı Bilgi Alın

© 2021 by mobiler.dev

Kurumsal Yazar Hesapları

adesso.png
mobilerdevLogo.jpg
Yazarlık Başvurusu Hakkında Bilgi Alın, Başvuru Yapın.
Topluluk Yazarlarını Tanıyın