27 মার্চ, 2025 থেকে, আমরা AOSP তৈরি করতে এবং অবদান রাখতে aosp-main
এর পরিবর্তে android-latest-release
ব্যবহার করার পরামর্শ দিচ্ছি। আরও তথ্যের জন্য, AOSP-তে পরিবর্তনগুলি দেখুন।
অ্যাপ ডেভেলপারদের জন্য অডিও লেটেন্সি
সেভ করা পৃষ্ঠা গুছিয়ে রাখতে 'সংগ্রহ' ব্যবহার করুন
আপনার পছন্দ অনুযায়ী কন্টেন্ট সেভ করুন ও সঠিক বিভাগে রাখুন।
সর্বনিম্ন সম্ভাব্য অডিও লেটেন্সির জন্য, আমরা আপনাকে Oboe ব্যবহার করার পরামর্শ দিই।
ওবো
Oboe নেটিভ অডিও ব্যবহার করে এবং Android 8.1+ এর জন্য AAudio এবং Android এর পুরানো সংস্করণগুলির জন্য OpenSL ES-তে নির্মিত। একটি ডিভাইসের জন্য সম্ভাব্য সর্বনিম্ন লেটেন্সি অর্জন করতে, setPerformanceMode(oboe::PerformanceMode::LowLatency)
সেট করুন এবং setSharingMode(oboe::SharingMode::Exclusive)
। Oboe সম্পর্কে আরও তথ্যের জন্য শুরু করার নির্দেশিকা , README.md
এবং সম্পূর্ণ নির্দেশিকা দেখুন। Oboe ব্যবহার করে একটি নমুনা অ্যাপের জন্য সাউন্ডবোর্ড অ্যাপটি পড়ুন।
দ্রষ্টব্য: আপনি যদি লেটেন্সি সংবেদনশীল অ্যাপ্লিকেশনের জন্য জাভাতে আউটপুট অডিও স্ট্রীম তৈরি করার জন্য AudioTrack ব্যবহার করেন, তাহলে PERFORMANCE_MODE_LOW_LATENCY
মোড ব্যবহার করুন৷
বাস্তবায়ন চেকলিস্ট
অ্যান্ড্রয়েড নেটিভ অডিও ব্যবহার করতে:
- Android NDK ডাউনলোড এবং ইনস্টল করুন।
- Oboe এর জন্য শুরু করার নির্দেশিকা অনুসরণ করুন।
- Oboe বিল্ডারে
setPerformanceMode(oboe::PerformanceMode::LowLatency)
এবং setSharingMode(oboe::SharingMode::Exclusive)
কল করুন। - android.media.AudioManager.getProperty(java.lang.String) দ্বারা ফেরত প্রস্তাবিত নেটিভ বাফার আকার এবং নমুনা হার ব্যবহার করুন।
দ্রষ্টব্য: ইনপুটের জন্য একই বাফার আকার এবং নমুনা হার ব্যবহার করা উচিত।
- আপনার কলব্যাক হ্যান্ডলারগুলিকে ছোট রাখুন, ফেটে যাওয়া CPU ব্যবহার বা সীমাহীন ব্লকিং ছাড়াই। অগ্রাধিকার বিপরীত এড়িয়ে চলুন.
- ইনপুট এবং আউটপুট কলব্যাক হ্যান্ডলার এবং কলব্যাক হ্যান্ডলার এবং আপনার বাকি অ্যাপ্লিকেশনের মধ্যে যোগাযোগ করতে অ-ব্লকিং অ্যালগরিদম ব্যবহার করার কথা বিবেচনা করুন।
অন্যান্য উৎস
source.android.com
source.android.com সাইটটি মূলত অ্যান্ড্রয়েড ডিভাইস তৈরিকারী OEM-এর জন্য ডিজাইন করা হয়েছে, এবং SoC বিক্রেতারা যারা এই OEMগুলিতে উপাদান সরবরাহ করে।
যাইহোক, এই সাইটে লেটেন্সি সম্পর্কে প্রচুর দরকারী তথ্য রয়েছে, তাই আপনি এটি পর্যালোচনা করতে চাইতে পারেন। অডিও লেটেন্সিতে নিবন্ধগুলি দেখুন।
android-ndk
আপনার যদি Android নেটিভ অডিও ব্যবহার করার বিষয়ে প্রশ্ন থাকে, তাহলে আপনি android-ndk আলোচনা গোষ্ঠীতে জিজ্ঞাসা করতে পারেন।
Oboe-তে বাগ রিপোর্ট করুন
Oboe ব্যবহার করে আপনার সমস্যা হলে, আপনি একটি বাগ ফাইল করতে পারেন।
ভিডিও
- Oboe সঙ্গে শুরু হচ্ছে
- কম লেটেন্সি অডিও - কারণ আপনার কান এটি মূল্যবান
- অ্যান্ড্রয়েড ডেভ সামিট 2018।
- অ্যান্ড্রয়েডে বিজয়ী - কীভাবে একটি অ্যান্ড্রয়েড অডিও অ্যাপ অপ্টিমাইজ করবেন
- অ্যান্ড্রয়েড ডেভেলপার চ্যালেঞ্জ 2018।
- অ্যান্ড্রয়েডে উচ্চ কার্যক্ষমতার অডিও (Google I/O 2013)
- পুরো ভিডিওটি লেটেন্সি সম্পর্কে।
- অ্যান্ড্রয়েডে দুর্দান্ত মাল্টি-মিডিয়া অভিজ্ঞতা তৈরি করা (Google I/O 2014)
- প্রথম 14 মিনিট সাধারণভাবে অডিও এবং বিশেষ করে ইনপুট লেটেন্সি সম্পর্কে।
- অডিও লেটেন্সি: বাফার আকার (গুগল দেবের 100 দিন)
- অডিও লেটেন্সি, বাফার সাইজ এবং টাস্ক শিডিউলিংয়ের মধ্যে সম্পর্ক বর্ণনা করে।
এই পৃষ্ঠার কন্টেন্ট ও কোডের নমুনাগুলি Content License-এ বর্ণিত লাইসেন্সের অধীনস্থ। Java এবং OpenJDK হল Oracle এবং/অথবা তার অ্যাফিলিয়েট সংস্থার রেজিস্টার্ড ট্রেডমার্ক।
2025-03-26 UTC-তে শেষবার আপডেট করা হয়েছে।
[[["সহজে বোঝা যায়","easyToUnderstand","thumb-up"],["আমার সমস্যার সমাধান হয়েছে","solvedMyProblem","thumb-up"],["অন্যান্য","otherUp","thumb-up"]],[["এতে আমার প্রয়োজনীয় তথ্য নেই","missingTheInformationINeed","thumb-down"],["খুব জটিল / অনেক ধাপ","tooComplicatedTooManySteps","thumb-down"],["পুরনো","outOfDate","thumb-down"],["অনুবাদ সংক্রান্ত সমস্যা","translationIssue","thumb-down"],["নমুনা / কোড সংক্রান্ত সমস্যা","samplesCodeIssue","thumb-down"],["অন্যান্য","otherDown","thumb-down"]],["2025-03-26 UTC-তে শেষবার আপডেট করা হয়েছে।"],[],[],null,["# Audio latency for app developers\n\nFor the lowest possible audio latency, we recommend you use [Oboe](https://developer.android.com/games/sdk/oboe).\n\nOboe\n----\n\n[Oboe](https://github.com/google/oboe) uses native audio and is built\non AAudio for Android 8.1+ and OpenSL ES for older versions of Android. To achieve the lowest\npossible latency for a device, set `setPerformanceMode(oboe::PerformanceMode::LowLatency)`\nand `setSharingMode(oboe::SharingMode::Exclusive)`.\nSee the [Getting started guide](https://github.com/google/oboe/blob/main/docs/GettingStarted.md),\n[`README.md`](https://github.com/google/oboe/blob/main/README.md),\nand [Full guide](https://github.com/google/oboe/blob/main/docs/FullGuide.md) for more\ninformation on Oboe. Refer to the [Soundboard app](https://github.com/google/oboe/tree/main/samples/SoundBoard)\nfor a sample app using Oboe.\n\n**Note:** If you use [AudioTrack](https://developer.android.com/reference/android/media/AudioTrack)\nfor creating output audio streams in Java for latency sensitive applications, use the [`PERFORMANCE_MODE_LOW_LATENCY`](https://developer.android.com/reference/android/media/AudioTrack#PERFORMANCE_MODE_LOW_LATENCY)\nmode.\n\n\u003cbr /\u003e\n\nImplementation checklist\n------------------------\n\nTo use Android native audio:\n\n1. Download and install the [Android NDK](https://developer.android.com/tools/sdk/ndk/index.html).\n2. Follow the [Getting started guide](https://github.com/google/oboe/blob/main/docs/GettingStarted.md) for Oboe.\n3. Call `setPerformanceMode(oboe::PerformanceMode::LowLatency)` and `setSharingMode(oboe::SharingMode::Exclusive)` on the Oboe builder.\n4. Use the recommended native buffer size and sample rate returned by [android.media.AudioManager.getProperty(java.lang.String)](http://developer.android.com/reference/android/media/AudioManager.html#getProperty(java.lang.String)).\n\n **Note:** The same buffer size and sample rate should also be used for input.\n5. Keep your callback handlers short, without bursty CPU usage or unbounded blocking. Avoid [priority inversion.](/docs/core/audio/avoiding_pi)\n6. Consider using [non-blocking algorithms](/docs/core/audio/avoiding_pi#nonBlockingAlgorithms) to communicate between input and output callback handlers, and between the callback handlers and the rest of your application.\n\nOther resources\n---------------\n\n### source.android.com\n\n\nThe site [source.android.com](/)\nis primarily designed for OEMs building Android\ndevices, and the SoC vendors who supply components to these OEMs.\n\n\nHowever, there is a wealth of useful information about latency at this site, so\nyou may want to review it. See the articles at\n[Audio latency.](/docs/core/audio/latency/latency)\n\n### android-ndk\n\n\nIf you have questions about how to use Android native audio, you can ask at the discussion group\n[android-ndk](https://groups.google.com/forum/#!forum/android-ndk).\n\n### Report bugs on Oboe\n\n\nIf you have issues using Oboe, you can\n[file a bug](https://github.com/google/oboe/issues).\n\n### Videos\n\n[Getting started with Oboe](https://www.youtube.com/playlist?list=PLWz5rJ2EKKc_duWv9IPNvx9YBudNMmLSa)\n[Low Latency Audio - Because Your Ears Are Worth It](https://www.youtube.com/watch?v=8vOf_fDtur4)\n: Android Dev Summit 2018.\n\n[Winning on Android - How to optimize an Android audio app](https://www.youtube.com/watch?v=tWBojmBpS74)\n: Android Developer Challenge 2018.\n\n[High performance audio on Android](https://youtu.be/d3kfEeMZ65c)\n(Google I/O 2013)\n: The whole video is about latency.\n\n[Building great multi-media experiences on Android](https://youtu.be/92fgcUNCHic)\n(Google I/O 2014)\n: The first 14 minutes are about audio in general and input latency in particular.\n\n[Audio latency: buffer sizes](https://youtu.be/PnDK17zP9BI)\n(100 Days of Google Dev)\n: Describes the relationship between audio latency, buffer sizes, and task scheduling."]]