diff options
Diffstat (limited to 'media')
-rwxr-xr-x | media/java/android/media/AudioManager.java | 23 | ||||
-rw-r--r-- | media/java/android/media/AudioTrack.java | 10 | ||||
-rwxr-xr-x | media/java/android/media/IAudioService.aidl | 6 |
3 files changed, 29 insertions, 10 deletions
diff --git a/media/java/android/media/AudioManager.java b/media/java/android/media/AudioManager.java index 7dff0c2b9380..d22e97c231fd 100755 --- a/media/java/android/media/AudioManager.java +++ b/media/java/android/media/AudioManager.java @@ -5434,8 +5434,12 @@ public class AudioManager { public boolean setAdditionalOutputDeviceDelay( @NonNull AudioDeviceInfo device, @IntRange(from = 0) long delayMillis) { Objects.requireNonNull(device); - // Implement the setter in r-dev or r-tv-dev as needed. - return false; + try { + return getService().setAdditionalOutputDeviceDelay( + new AudioDeviceAttributes(device), delayMillis); + } catch (RemoteException e) { + throw e.rethrowFromSystemServer(); + } } /** @@ -5450,8 +5454,11 @@ public class AudioManager { @IntRange(from = 0) public long getAdditionalOutputDeviceDelay(@NonNull AudioDeviceInfo device) { Objects.requireNonNull(device); - // Implement the getter in r-dev or r-tv-dev as needed. - return 0; + try { + return getService().getAdditionalOutputDeviceDelay(new AudioDeviceAttributes(device)); + } catch (RemoteException e) { + throw e.rethrowFromSystemServer(); + } } /** @@ -5468,8 +5475,12 @@ public class AudioManager { @IntRange(from = 0) public long getMaxAdditionalOutputDeviceDelay(@NonNull AudioDeviceInfo device) { Objects.requireNonNull(device); - // Implement the getter in r-dev or r-tv-dev as needed. - return 0; + try { + return getService().getMaxAdditionalOutputDeviceDelay( + new AudioDeviceAttributes(device)); + } catch (RemoteException e) { + throw e.rethrowFromSystemServer(); + } } /** diff --git a/media/java/android/media/AudioTrack.java b/media/java/android/media/AudioTrack.java index b2c2c4b1bbb4..d7ef4549ca3f 100644 --- a/media/java/android/media/AudioTrack.java +++ b/media/java/android/media/AudioTrack.java @@ -1269,10 +1269,12 @@ public class AudioTrack extends PlayerBase // native code figure out the minimum buffer size. if (mMode == MODE_STREAM && mBufferSizeInBytes == 0) { int bytesPerSample = 1; - try { - bytesPerSample = mFormat.getBytesPerSample(mFormat.getEncoding()); - } catch (IllegalArgumentException e) { - // do nothing + if (AudioFormat.isEncodingLinearFrames(mFormat.getEncoding())) { + try { + bytesPerSample = mFormat.getBytesPerSample(mFormat.getEncoding()); + } catch (IllegalArgumentException e) { + // do nothing + } } mBufferSizeInBytes = mFormat.getChannelCount() * bytesPerSample; } diff --git a/media/java/android/media/IAudioService.aidl b/media/java/android/media/IAudioService.aidl index ebaa3162d0e4..ed48b569b166 100755 --- a/media/java/android/media/IAudioService.aidl +++ b/media/java/android/media/IAudioService.aidl @@ -330,4 +330,10 @@ interface IAudioService { oneway void unregisterCommunicationDeviceDispatcher( ICommunicationDeviceDispatcher dispatcher); + + boolean setAdditionalOutputDeviceDelay(in AudioDeviceAttributes device, long delayMillis); + + long getAdditionalOutputDeviceDelay(in AudioDeviceAttributes device); + + long getMaxAdditionalOutputDeviceDelay(in AudioDeviceAttributes device); } |