27 মার্চ, 2025 থেকে, আমরা AOSP তৈরি করতে এবং অবদান রাখতে aosp-main
এর পরিবর্তে android-latest-release
ব্যবহার করার পরামর্শ দিচ্ছি। আরও তথ্যের জন্য, AOSP-তে পরিবর্তনগুলি দেখুন।
মাইক্রোফোন ইনপুট
সেভ করা পৃষ্ঠা গুছিয়ে রাখতে 'সংগ্রহ' ব্যবহার করুন
আপনার পছন্দ অনুযায়ী কন্টেন্ট সেভ করুন ও সঠিক বিভাগে রাখুন।
অডিও ক্যাপচার করার সময়, অডিও HAL একটি openInputStream
কল পায় যাতে মাইক্রোফোন ইনপুট কীভাবে প্রক্রিয়া করা উচিত তা নির্দেশ করার জন্য একটি AudioSource
আর্গুমেন্ট অন্তর্ভুক্ত থাকে।
VOICE_RECOGNITION
উত্সটি একটি স্টেরিও মাইক্রোফোন স্ট্রীম আশা করে যার একটি ইকো বাতিলকরণ প্রভাব রয়েছে (যদি উপলব্ধ থাকে) তবে এটিতে অন্য কোন প্রক্রিয়াকরণ প্রয়োগ করা হয় না।
দুটির বেশি চ্যানেল (স্টিরিও) সহ একটি ডিভাইস থেকে অডিও ক্যাপচার করতে, অবস্থানগত সূচক মাস্কের পরিবর্তে একটি চ্যানেল সূচক মাস্ক ব্যবহার করুন (যেমন CHANNEL_IN_LEFT
)। যেমন:
final AudioFormat audioFormat = new AudioFormat.Builder()
.setEncoding(AudioFormat.ENCODING_PCM_16BIT)
.setSampleRate(44100)
.setChannelIndexMask(0xf /* 4 channels, 0..3 */)
.build();
final AudioRecord audioRecord = new AudioRecord.Builder()
.setAudioFormat(audioFormat)
.build();
audioRecord.setPreferredDevice(someAudioDeviceInfo);
যখন setChannelMask
এবং setChannelIndexMask
উভয়ই সেট করা থাকে, তখন AudioRecord
শুধুমাত্র setChannelMask
(সর্বোচ্চ দুটি চ্যানেল) দ্বারা সেট করা মান ব্যবহার করে।
সমবর্তী ক্যাপচার
অ্যান্ড্রয়েড 10 অনুসারে, অ্যান্ড্রয়েড ফ্রেমওয়ার্ক ইনপুটগুলির একযোগে ক্যাপচার সমর্থন করে, তবে ব্যবহারকারীর গোপনীয়তা রক্ষা করার জন্য বিধিনিষেধ সহ। এই বিধিনিষেধের অংশ হিসাবে, ভার্চুয়াল উত্স যেমন AUDIO_SOURCE_FM_TUNER
উপেক্ষা করা হয়, এবং নিয়মিত ইনপুট (যেমন মাইক্রোফোন) সহ একই সাথে ক্যাপচার করার অনুমতি দেওয়া হয়। HwAudioSource
সমবর্তী ক্যাপচার বিধিনিষেধের অংশ হিসাবে বিবেচিত হয় না।
AUDIO_DEVICE_IN_BUS
ডিভাইস বা সেকেন্ডারি AUDIO_DEVICE_IN_FM_TUNER
ডিভাইসগুলির সাথে কাজ করার জন্য ডিজাইন করা অ্যাপগুলিকে অবশ্যই সেই ডিভাইসগুলিকে স্পষ্টভাবে সনাক্ত করতে এবং Android ডিফল্ট সোর্স নির্বাচন লজিক বাইপাস করার জন্য AudioRecord.setPreferredDevice()
ব্যবহার করার উপর নির্ভর করতে হবে৷
এই পৃষ্ঠার কন্টেন্ট ও কোডের নমুনাগুলি Content License-এ বর্ণিত লাইসেন্সের অধীনস্থ। Java এবং OpenJDK হল Oracle এবং/অথবা তার অ্যাফিলিয়েট সংস্থার রেজিস্টার্ড ট্রেডমার্ক।
2025-07-09 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-07-09 UTC-তে শেষবার আপডেট করা হয়েছে।"],[],[],null,["# Microphone input\n\nWhen capturing audio, the Audio HAL receives an `openInputStream` call that\nincludes an `AudioSource` argument to indicate how microphone input should be\nprocessed.\n\nThe `VOICE_RECOGNITION` source expects a stereo microphone stream that has an\necho cancellation effect (if available) but no other processing applied to it.\n\nMulti-channel microphone input\n------------------------------\n\nTo capture audio from a device with more than two channels (stereo), use a\nchannel index mask instead of positional index mask (such as `CHANNEL_IN_LEFT`).\nFor example: \n\n final AudioFormat audioFormat = new AudioFormat.Builder()\n .setEncoding(AudioFormat.ENCODING_PCM_16BIT)\n .setSampleRate(44100)\n .setChannelIndexMask(0xf /* 4 channels, 0..3 */)\n .build();\n final AudioRecord audioRecord = new AudioRecord.Builder()\n .setAudioFormat(audioFormat)\n .build();\n audioRecord.setPreferredDevice(someAudioDeviceInfo);\n\nWhen both `setChannelMask` and `setChannelIndexMask` are set, `AudioRecord` uses\nonly the value set by `setChannelMask` (maximum of two channels).\n\nConcurrent capture\n------------------\n\nAs of Android 10, the Android framework supports\n[Concurrent capture](/docs/core/audio/concurrent) of inputs, but with\nrestrictions to protect the user's privacy. As part of these restrictions,\nvirtual sources such as `AUDIO_SOURCE_FM_TUNER` are ignored, and are allowed to\nbe captured concurrently along with a regular input (such as the microphone).\n`HwAudioSource` is not considered part of the concurrent capture restrictions.\n\nApps designed to work with `AUDIO_DEVICE_IN_BUS` devices or with secondary\n`AUDIO_DEVICE_IN_FM_TUNER` devices must rely on explicitly identifying those\ndevices and using `AudioRecord.setPreferredDevice()` to bypass the Android\ndefault source selection logic."]]