Android新增STREAM_A2DP流类型,适用于蓝牙音乐,等于在android上层独立出一条音频通道,audioFIinger可以根据流类型做策略。

diff --git a/frameworks/av/include/media/AudioPolicyHelper.h b/frameworks/av/include/media/AudioPolicyHelper.hold mode 100644new mode 100755index 79231be..c19d5f2--- a/frameworks/av/include/media/AudioPolicyHelper.h+++ b/frameworks/av/include/media/AudioPolicyHelper.h@@ -55,6 +55,9 @@ static audio_stream_type_t audio_attributes_to_stream_type(const audio_attribute     case AUDIO_USAGE_NOTIFICATION_EVENT:         return AUDIO_STREAM_NOTIFICATION; +case AUDIO_USAGE_A2DP:+return AUDIO_STREAM_A2DP;+     case AUDIO_USAGE_UNKNOWN:     default:         return AUDIO_STREAM_MUSIC;@@ -107,6 +110,9 @@ static void stream_type_to_audio_attributes(audio_stream_type_t streamType,         attr->content_type = AUDIO_CONTENT_TYPE_SPEECH;         attr->usage = AUDIO_USAGE_ASSISTANCE_ACCESSIBILITY;         break;+case AUDIO_STREAM_A2DP:+        attr->content_type = AUDIO_CONTENT_TYPE_A2DP;+        attr->usage = AUDIO_USAGE_A2DP;     default:         ALOGE("invalid stream type %d when converting to attributes", streamType);     }diff --git a/frameworks/av/media/libmedia/AudioSystem.cpp b/frameworks/av/media/libmedia/AudioSystem.cppold mode 100644new mode 100755diff --git a/frameworks/av/media/libmedia/AudioTrack.cpp b/frameworks/av/media/libmedia/AudioTrack.cppold mode 100644new mode 100755index e23091c..ceefb68--- a/frameworks/av/media/libmedia/AudioTrack.cpp+++ b/frameworks/av/media/libmedia/AudioTrack.cpp@@ -375,7 +375,6 @@ status_t AudioTrack::set(             flags = (audio_output_flags_t) (flags | AUDIO_OUTPUT_FLAG_FAST);         }     }-     // these below should probably come from the audioFlinger too...     if (format == AUDIO_FORMAT_DEFAULT) {         format = AUDIO_FORMAT_PCM_16_BIT;diff --git a/frameworks/av/media/libmedia/IMediaPlayer.cpp b/frameworks/av/media/libmedia/IMediaPlayer.cppold mode 100644new mode 100755diff --git a/frameworks/av/media/libmediaplayerservice/MediaPlayerService.cpp b/frameworks/av/media/libmediaplayerservice/MediaPlayerService.cppold mode 100644new mode 100755diff --git a/frameworks/av/services/audioflinger/Threads.cpp b/frameworks/av/services/audioflinger/Threads.cppindex 938fbcf..ca6c6b7 100755--- a/frameworks/av/services/audioflinger/Threads.cpp+++ b/frameworks/av/services/audioflinger/Threads.cpp@@ -4084,6 +4084,7 @@ AudioFlinger::PlaybackThread::mixer_state AudioFlinger::MixerThread::prepareTrac     mEffectBufferValid = false; // mEffectBuffer has no valid data until tracks found.  phoneMixer();+//ALOGW("mIsPhoneOn = %d", mIsPhoneOn);      for (size_t i=0 ; i t = mActiveTracks[i].promote();@@ -4360,7 +4361,6 @@ AudioFlinger::PlaybackThread::mixer_state AudioFlinger::MixerThread::prepareTrac  typeVolume *= 0;  } }-ALOGW("mIsPhoneOn = %d, typeVolume = %f", mIsPhoneOn, typeVolume);                   float v = masterVolume * typeVolume;diff --git a/frameworks/av/services/audioflinger/Tracks.cpp b/frameworks/av/services/audioflinger/Tracks.cppold mode 100644new mode 100755diff --git a/frameworks/av/services/audiopolicy/common/managerdefinitions/include/VolumeCurve.h b/frameworks/av/services/audiopolicy/common/managerdefinitions/include/VolumeCurve.hold mode 100644new mode 100755diff --git a/frameworks/av/services/audiopolicy/common/managerdefinitions/src/Gains.cpp b/frameworks/av/services/audiopolicy/common/managerdefinitions/src/Gains.cppold mode 100644new mode 100755index e3fc9a8..cb7d8e9--- a/frameworks/av/services/audiopolicy/common/managerdefinitions/src/Gains.cpp+++ b/frameworks/av/services/audiopolicy/common/managerdefinitions/src/Gains.cpp@@ -176,6 +176,12 @@ const VolumeCurvePoint *Gains::sVolumeProfiles[AUDIO_STREAM_CNT]         Gains::sSilentVolumeCurve,    // DEVICE_CATEGORY_EARPIECE         Gains::sSilentVolumeCurve     // DEVICE_CATEGORY_EXT_MEDIA     },+    { // AUDIO_STREAM_A2DP+    Gains::sDefaultMediaVolumeCurve, // DEVICE_CATEGORY_HEADSET+        Gains::sSpeakerMediaVolumeCurve, // DEVICE_CATEGORY_SPEAKER+        Gains::sDefaultMediaVolumeCurve, // DEVICE_CATEGORY_EARPIECE+        Gains::sDefaultMediaVolumeCurve  // DEVICE_CATEGORY_EXT_MEDIA+    },     { // AUDIO_STREAM_ACCESSIBILITY         Gains::sDefaultMediaVolumeCurve, // DEVICE_CATEGORY_HEADSET         Gains::sSpeakerMediaVolumeCurve, // DEVICE_CATEGORY_SPEAKERdiff --git a/frameworks/av/services/audiopolicy/common/managerdefinitions/src/Serializer.cpp b/frameworks/av/services/audiopolicy/common/managerdefinitions/src/Serializer.cppold mode 100644new mode 100755diff --git a/frameworks/av/services/audiopolicy/common/managerdefinitions/src/StreamDescriptor.cpp b/frameworks/av/services/audiopolicy/common/managerdefinitions/src/StreamDescriptor.cppold mode 100644new mode 100755index b3019e1..f635a1e--- a/frameworks/av/services/audiopolicy/common/managerdefinitions/src/StreamDescriptor.cpp+++ b/frameworks/av/services/audiopolicy/common/managerdefinitions/src/StreamDescriptor.cpp@@ -190,6 +190,8 @@ void StreamDescriptorCollection::initializeVolumeCurves(bool isSpeakerDrcEnabled                             Gains::sSpeakerSonificationVolumeCurveDrc);         setVolumeCurvePoint(AUDIO_STREAM_MUSIC, DEVICE_CATEGORY_SPEAKER,                             Gains::sSpeakerMediaVolumeCurveDrc);+setVolumeCurvePoint(AUDIO_STREAM_A2DP, DEVICE_CATEGORY_SPEAKER,+                            Gains::sSpeakerMediaVolumeCurveDrc);         setVolumeCurvePoint(AUDIO_STREAM_ACCESSIBILITY, DEVICE_CATEGORY_SPEAKER,                             Gains::sSpeakerMediaVolumeCurveDrc);     }diff --git a/frameworks/av/services/audiopolicy/common/managerdefinitions/src/TypeConverter.cpp b/frameworks/av/services/audiopolicy/common/managerdefinitions/src/TypeConverter.cppold mode 100644new mode 100755index 48bfd79..727390d--- a/frameworks/av/services/audiopolicy/common/managerdefinitions/src/TypeConverter.cpp+++ b/frameworks/av/services/audiopolicy/common/managerdefinitions/src/TypeConverter.cpp@@ -223,6 +223,7 @@ const StreamTypeConverter::Table StreamTypeConverter::mTable[] = {     MAKE_STRING_FROM_ENUM(AUDIO_STREAM_ENFORCED_AUDIBLE),     MAKE_STRING_FROM_ENUM(AUDIO_STREAM_DTMF),     MAKE_STRING_FROM_ENUM(AUDIO_STREAM_TTS),+    MAKE_STRING_FROM_ENUM(AUDIO_STREAM_A2DP),     MAKE_STRING_FROM_ENUM(AUDIO_STREAM_ACCESSIBILITY),     MAKE_STRING_FROM_ENUM(AUDIO_STREAM_REROUTING),     MAKE_STRING_FROM_ENUM(AUDIO_STREAM_PATCH),diff --git a/frameworks/av/services/audiopolicy/common/managerdefinitions/src/VolumeCurve.cpp b/frameworks/av/services/audiopolicy/common/managerdefinitions/src/VolumeCurve.cppold mode 100644new mode 100755index 14caf7c..0bc1252--- a/frameworks/av/services/audiopolicy/common/managerdefinitions/src/VolumeCurve.cpp+++ b/frameworks/av/services/audiopolicy/common/managerdefinitions/src/VolumeCurve.cpp@@ -25,7 +25,7 @@ namespace android { float VolumeCurve::volIndexToDb(int indexInUi, int volIndexMin, int volIndexMax) const {     ALOG_ASSERT(!mCurvePoints.isEmpty(), "Invalid volume curve");-+     size_t nbCurvePoints = mCurvePoints.size();     // the volume index in the UI is relative to the min and max volume indices for this stream     int nbSteps = 1 + mCurvePoints[nbCurvePoints - 1].mIndex - mCurvePoints[0].mIndex;diff --git a/frameworks/av/services/audiopolicy/config/audio_policy_volumes.xml b/frameworks/av/services/audiopolicy/config/audio_policy_volumes.xmlold mode 100644new mode 100755index 43a47b0..5c43ea4--- a/frameworks/av/services/audiopolicy/config/audio_policy_volumes.xml+++ b/frameworks/av/services/audiopolicy/config/audio_policy_volumes.xml@@ -151,6 +151,14 @@ volume index from 0 to 100.                                       ref="SILENT_VOLUME_CURVE"/>     +    +    +    +              

 

更多相关文章

  1. React Native與Android交互
  2. Android常用Support库
  3. Android渐变色xml文件
  4. Android(安卓)蓝牙开发(整理大全)
  5. 渐变的几种效果
  6. 各种类型Android(安卓)Market了解
  7. (转)android SQLite的使用
  8. Could not find com.android.tools.build:aapt2:3.3.1-5013011.
  9. Android中遍历文件夹、比较文件类型测试

随机推荐

  1. android远程adb调试(adb connect)失败时
  2. Android/Bluetooth 初始化流程
  3. android中读取短信
  4. Android(安卓)动态发送广播接收
  5. Android(安卓)LinearLayout Why Gravity
  6. Android(安卓)Third Party Libraries and
  7. Android(安卓)Dev Intro - GLSurfaceView
  8. Android(安卓)Studio Gradle project syn
  9. Android(安卓)进度条
  10. Android中Handler机制