যখন একটি হেডসেটকে আনপ্লাগড করা হয়, অথবা একটি ব্লুটুথ ডিভাইস বিচ্ছিন্ন করা হয় অডিও স্ট্রিম স্বয়ংক্রিয়ভাবে বিল্ট-ইন স্পিকারের দিকে রুট ঠিক করে। আপনি যদি আপনার মিউজিক শুনে থাকেন আমি যত জোরে শুনছি ঠিক ততো জোরে, এটা একটি শব্দময় বিস্ময় হতে পারে।
সৌবাগ্যবশত সিস্টেমটি একটি ACTION_AUDIO_BECOMING_NOISY ইনটেন্ট ব্রডকাস্ট করে যখন এটা ঘটে। একটি BroadcastReceiver রেজিস্টার করা একটা ভালো চর্চা যা এই ইনটেন্টের জন্য শুনে থাকে যখন আপনি এটা প্লে করছেন । মিউজিক প্লেয়ারের ক্ষেত্রে, ইউজার চিরাচিরতভাবে আশা করে প্লেব্যাক স্টপ হবে- যখন গেমের জন্য আপনি উল্লেখযোগ্যভাবে ভলিউম নীচু করতে পছন্দ করতে পারেন
private class NoisyAudioStreamReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
if (AudioManager.ACTION_AUDIO_BECOMING_NOISY.equals(intent.getAction())) {
// Pause the playback
}
}
}
private IntentFilter intentFilter = new IntentFilter(AudioManager.ACTION_AUDIO_BECOMING_NOISY);
private void startPlayback() {
registerReceiver(myNoisyAudioStreamReceiver(), intentFilter);
}
private void stopPlayback() {
unregisterReceiver(myNoisyAudioStreamReceiver);
}