OSDN Git Service

AudioService: Track client app recording activity
authorMikhail Naganov <mnaganov@google.com>
Thu, 18 Apr 2019 19:36:27 +0000 (12:36 -0700)
committerMikhail Naganov <mnaganov@google.com>
Wed, 24 Apr 2019 22:13:48 +0000 (15:13 -0700)
commita00883db121230086f4e97123d374be26fb01926
treec2e6f31239fff9f6c919725b0adfe28bdd2aad83
parenta23242a492a9f0c893cd7d5a25f53983218a8d97
AudioService: Track client app recording activity

Update RecordActivityMonitor to use events sent from clients
about their recording activity and coalesce them with
configuration update events sent from audioserver (APM). This
allows providing a high-level view on the recording
configurations consistent with client expectations.

For recorders that are managed entrirely on the server side
(AAudio MMAP) all events do contain configs. These recorders
do not have an associated death handler and need to be cleared
on audioserver restart.

Clearing client-managed trackers on audioserver restart is not
needed anymore. Clients will either continue
recording (AudioRecord handles IAudioRecord re-instantation) or
stop recording and notify AudioService about that.

Bug: 123312504
Test: android.media.cts.AudioRecordingConfigurationTest
      AudioRecordTest#testAudioRecordInfoCallback
      MediaRecorderTest#testAudioRecordInfoCallback
      manual testing using Oboe and Solo test apps

Change-Id: I4718f983c2d90e9c3e7480719a24bd187df7f80a
core/jni/android_media_AudioSystem.cpp
media/java/android/media/AudioManager.java
media/java/android/media/AudioRecordingConfiguration.java
media/java/android/media/AudioSystem.java
media/java/android/media/IAudioService.aidl
services/core/java/com/android/server/audio/AudioService.java
services/core/java/com/android/server/audio/RecordingActivityMonitor.java