Index: media/base/android/java/src/org/chromium/media/AudioManagerAndroid.java |
diff --git a/media/base/android/java/src/org/chromium/media/AudioManagerAndroid.java b/media/base/android/java/src/org/chromium/media/AudioManagerAndroid.java |
index 0c37c0a9e3a51c92e52e907ba449fcc76cd7019b..cd21265f83d0e0e03962b56e3fe7bb2dcd73dc00 100644 |
--- a/media/base/android/java/src/org/chromium/media/AudioManagerAndroid.java |
+++ b/media/base/android/java/src/org/chromium/media/AudioManagerAndroid.java |
@@ -13,6 +13,7 @@ import android.content.Intent; |
import android.content.IntentFilter; |
import android.content.pm.PackageManager; |
import android.database.ContentObserver; |
+import android.media.audiofx.AcousticEchoCanceler; |
import android.media.AudioFormat; |
import android.media.AudioManager; |
import android.media.AudioRecord; |
@@ -314,7 +315,7 @@ class AudioManagerAndroid { |
@CalledByNative |
private int getNativeOutputSampleRate() { |
- if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.JELLY_BEAN_MR1) { |
+ if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1) { |
String sampleRateString = mAudioManager.getProperty( |
AudioManager.PROPERTY_OUTPUT_SAMPLE_RATE); |
return (sampleRateString == null ? |
@@ -378,6 +379,17 @@ class AudioManagerAndroid { |
DEFAULT_FRAME_PER_BUFFER : Integer.parseInt(framesPerBuffer)); |
} |
+ @CalledByNative |
+ public static boolean shouldUseAcousticEchoCanceler() { |
+ // AcousticEchoCanceler was added in API level 16 (Jelly Bean). |
+ // Next is a list of device models which have been vetted for good |
+ // quality platform echo cancellation. |
+ return Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN && |
+ AcousticEchoCanceler.isAvailable() && |
+ (Build.MODEL.equals("Nexus 5") || |
+ Build.MODEL.equals("Nexus 7")); |
+ } |
+ |
/** Sets the speaker phone mode. */ |
public void setSpeakerphoneOn(boolean on) { |
boolean wasOn = mAudioManager.isSpeakerphoneOn(); |
@@ -603,12 +615,12 @@ class AudioManagerAndroid { |
} |
/** Trivial helper method for debug logging */ |
- private void logd(String msg) { |
+ private static void logd(String msg) { |
Log.d(TAG, msg); |
} |
/** Trivial helper method for error logging */ |
- private void loge(String msg) { |
+ private static void loge(String msg) { |
Log.e(TAG, msg); |
} |